a5gvkpayments

package
v0.0.0-...-35a760b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 8, 2018 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrDBTemporaryError = JSONError{
		Code:     2,
		Critical: false,
		Err:      errors.New("temporary database error")}

	ErrSignatureMismatch = JSONError{
		Code:     10,
		Critical: true,
		Err:      errors.New("mismatching of the calculated and transmitted signature")}

	ErrQueryParameters = JSONError{
		Code:     11,
		Critical: true,
		Err:      errors.New("query parameters do not meet the specification")}

	ErrProductNotExist = JSONError{
		Code:     20,
		Critical: true,
		Err:      errors.New("product does not exist")}

	ErrProductOutOfStock = JSONError{
		Code:     21,
		Critical: true,
		Err:      errors.New("product is out of stock")}

	ErrUserNotExist = JSONError{
		Code:     22,
		Critical: true,
		Err:      errors.New("user does not exist")}

	ErrUnknownInternalServerError = JSONError{
		Code:     100,
		Critical: true,
		Err:      errors.New("unknown internal server error")}

	ErrUnsupportedPaymentNotificationType = JSONError{
		Code:     101,
		Critical: true,
		Err:      errors.New("unsupported payment notification type")}
)

<https://vk.com/dev/payments_errors>

View Source
var (
	ErrVKAPIPaymentUnexpectedNotificationType = errors.New(`unexpected vk payment's "notification_type"`)
	ErrVKAPIPaymentItemEmpty                  = errors.New(`empty vk payment's "item"`)
)
View Source
var ErrVKAPIKVKeyName = errors.New("unknown vk payment's key name")
View Source
var ErrVKAPIPaymentInfoLanguage = errors.New(`unexpected vk payment's "lang"`)
View Source
var ErrVKAPIPaymentOrderStatusUnexpected = errors.New(`unexpected vk payment's order "status"`)

Functions

This section is empty.

Types

type JSONError

type JSONError struct {
	Code     uint64 `json:"error_code"`
	Err      error  `json:"error_msg,omitempty"`
	Critical bool   `json:"critical"`
}

JSONError <https://vk.com/dev/payments_errors>.

func (*JSONError) Error

func (e *JSONError) Error() string

func (*JSONError) MarshalJSON

func (e *JSONError) MarshalJSON() ([]byte, error)

func (*JSONError) UnmarshalJSON

func (e *JSONError) UnmarshalJSON(b []byte) error

type JSONResponse

type JSONResponse struct {
	Error   *JSONError  `json:"error,omitempty"`
	Payload interface{} `json:"response,omitempty"`
}

type JSONSuccessInfo

type JSONSuccessInfo struct {
	// Title vk description: название товара, до 48 символов
	Title string `json:"title"`
	// PhotoURL vk description: URL изображения товара на сервере
	// разработчика. Рекомендуемый размер изображения – 75х75px.
	PhotoURL string `json:"photo_url,omitempty"`
	// Price vk description: стоимость товара в голосах.
	Price int64 `json:"price"`
	// ItemID vk description: идентификатор товара в приложении.
	ItemID string `json:"item_id,omitempty"`
	// Expiration vk description: разрешает кэширование товара на
	// {expiration} секунд. Допустимый диапазон от 600 до 604800 секунд.
	// Внимание! При отсутствии параметра возможно кэширование товара на
	// 3600 секунд при большом количестве подряд одинаковых ответов. Для
	// отмены кэширования необходимо передать 0 в качестве значения
	// параметра.
	Expiration int64 `json:"expiration"`
}

JSONSuccessInfo <https://vk.com/dev/payments_getitem>.

type JSONSuccessInfoExpiration

type JSONSuccessInfoExpiration int64
const JSONSuccessInfoExpirationNoCache JSONSuccessInfoExpiration = 0

type JSONSuccessOrder

type JSONSuccessOrder struct {
	// OrderID, vk description: required идентификатор заказа в системе
	// платежей ВКонтакте.
	OrderID int64 `json:"order_id"`
	// AppOrderID vk description: идентификатор заказа в приложении.
	// Должен быть уникальным для каждого заказа.
	AppOrderID int64 `json:"app_order_id,omitempty"`
}

JSONSuccessOrder <https://vk.com/dev/payments_status>.

type VKAPIKV

type VKAPIKV map[string]string

VKAPIKV vk payment's key values

func NewVKAPIKVByURLValues

func NewVKAPIKVByURLValues(keyValues url.Values) VKAPIKV

func (VKAPIKV) Checksum

func (keyValues VKAPIKV) Checksum(secretKey string) (string, error)

func (VKAPIKV) Item

func (m VKAPIKV) Item() string

func (VKAPIKV) KV

func (keyValues VKAPIKV) KV() a5gapi.KV

func (VKAPIKV) KVS

func (keyValues VKAPIKV) KVS() a5gapi.KVS

func (VKAPIKV) NotificationType

func (m VKAPIKV) NotificationType() string

func (VKAPIKV) OrderID

func (m VKAPIKV) OrderID() string

func (VKAPIKV) Sig

func (m VKAPIKV) Sig() string

func (VKAPIKV) VKAPIPaymentInfo

func (kv VKAPIKV) VKAPIPaymentInfo() (*VKAPIPaymentInfo, error)

func (VKAPIKV) VKAPIPaymentOrder

func (kv VKAPIKV) VKAPIPaymentOrder() (*VKAPIPaymentOrder, error)

func (VKAPIKV) Validate

func (keyValues VKAPIKV) Validate() error

type VKAPIPayment

type VKAPIPayment struct {
	// NotificationType (notification_type) тип уведомления.
	// равен "order_status_change" или "order_status_change_test".
	NotificationType string `json:"notificationType"`

	// AppID (app_id) идентификатор приложения.
	AppID int64 `json:"appId"`

	// UserID (user_id) идентификатор пользователя, сделавшего заказ.
	UserID int64 `json:"userId"`

	// ReceiverID (receiver_id) идентификатор получателя заказа
	// (в данный момент совпадает с user_id, но в будущем может отличаться).
	ReceiverID int64 `json:"receiverId"`

	// OrderID (order_id) идентификатор заказа в системе платежей ВКонтакте.
	OrderID int64 `json:"orderId"`

	// Signature (sig) подпись уведомления (см. подробнее в разделе 3. Проверка подписи уведомления).
	Signature string `json:"signature"`
}

VKAPIPayment <https://vk.com/dev/payments_callbacks>.

func (*VKAPIPayment) Validate

func (p *VKAPIPayment) Validate() error

type VKAPIPaymentInfo

type VKAPIPaymentInfo struct {
	VKAPIPayment

	// Language (lang) язык пользователя в формате язык_страна.
	// На данный момент поддерживается 4 языка.
	Language string `json:"language"`

	// Item наименование товара, переданное диалоговому окну покупки
	// (см. Параметры диалогового окна платежей)
	Item string `json:"item"`
}

VKAPIPaymentInfo <https://vk.com/dev/payments_getitem>.

func (*VKAPIPaymentInfo) Validate

func (p *VKAPIPaymentInfo) Validate() error

type VKAPIPaymentInfoLanguage

type VKAPIPaymentInfoLanguage string

VKAPIPaymentInfoLanguage allowable languages for VKAPIPaymentInfo.Language

const (
	VKAPIPaymentInfoLanguageRURU VKAPIPaymentInfoLanguage = "ru_RU"
	VKAPIPaymentInfoLanguageUKUA VKAPIPaymentInfoLanguage = "uk_UA"
	VKAPIPaymentInfoLanguageBEBY VKAPIPaymentInfoLanguage = "be_BY"
	VKAPIPaymentInfoLanguageENUS VKAPIPaymentInfoLanguage = "en_US"
)

func (VKAPIPaymentInfoLanguage) String

func (t VKAPIPaymentInfoLanguage) String() string

type VKAPIPaymentNotificationType

type VKAPIPaymentNotificationType string

VKAPIPaymentNotificationType allowable values for VKAPIPayment.NotificationType

const (
	// VKAPIPaymentNotificationTypeGetItem получение информации о товаре.
	VKAPIPaymentNotificationTypeGetItem     VKAPIPaymentNotificationType = "get_item"
	VKAPIPaymentNotificationTypeGetItemTest VKAPIPaymentNotificationType = "get_item_test"

	// VKAPIPaymentNotificationTypeOrderStatusChange изменение статуса заказа.
	VKAPIPaymentNotificationTypeOrderStatusChange     VKAPIPaymentNotificationType = "order_status_change"
	VKAPIPaymentNotificationTypeOrderStatusChangeTest VKAPIPaymentNotificationType = "order_status_change_test"

	// VKAPIPaymentNotificationTypeGetSubscription получение информации о подписке.
	VKAPIPaymentNotificationTypeGetSubscription VKAPIPaymentNotificationType = "get_subscription"

	// VKAPIPaymentNotificationTypeSubscriptionStatusChange изменение статуса подписки.
	VKAPIPaymentNotificationTypeSubscriptionStatusChange VKAPIPaymentNotificationType = "subscription_status_change"
)

func (VKAPIPaymentNotificationType) String

func (VKAPIPaymentNotificationType) Validate

func (t VKAPIPaymentNotificationType) Validate() error

type VKAPIPaymentOrder

type VKAPIPaymentOrder struct {
	VKAPIPayment

	// Date дата создания заказа (в формате Unixtime).
	Date int64 `json:"date"`

	// Status новый статус заказа.
	// Возможные значения:
	// chargeable — заказ готов к оплате. Необходимо оформить заказ
	// пользователю внутри приложения. В случае ответа об успехе
	// платёжная система зачислит голоса на счёт приложения. Если в
	// ответ будет получено сообщение об ошибке, заказ отменяется.
	Status string `json:"status"`

	// Item наименование товара, переданное диалоговому окну покупки
	// (см. Параметры диалогового окна платежей)
	Item string `json:"item"`

	// ItemID (item_id) идентификатор товара в приложении.
	ItemID string `json:"itemId"`

	// ItemTitle (item_title) название товара.
	ItemTitle string `json:"itemTitle"`

	// ItemPhotoURL (item_photo_url) string изображение товара.
	ItemPhotoURL string `json:"itemPhotoUrl"`

	// ItemPrice (item_price) стоимость товара.
	ItemPrice string `json:"itemPrice"`
}

VKAPIPaymentOrder <https://vk.com/dev/payments_status>.

func (*VKAPIPaymentOrder) Validate

func (p *VKAPIPaymentOrder) Validate() error

type VKAPIPaymentOrderStatus

type VKAPIPaymentOrderStatus string

VKAPIPaymentOrderStatus allowable values for VKAPIPaymentOrder.Status

const (
	VKAPIPaymentOrderStatusChargeable VKAPIPaymentOrderStatus = "chargeable"
)

func (VKAPIPaymentOrderStatus) String

func (s VKAPIPaymentOrderStatus) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL