qiwip2p

package module
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2022 License: MIT Imports: 8 Imported by: 0

README

Qiwi P2P API для Go

Библиотека для взаимодействия с Qiwi P2P API

Документация этой библиотеки

https://pkg.go.dev/github.com/nickname32/qiwip2p

Примечания

CreateOplataURL

Возвращает ссылку для создания счёта посредством перехода по этой ссылке пользователем

Используйте FormatTimeToLifetime и ParseLifetime для работы со значением OplataCreateOptions.Lifetime

NewAPI

Инстансцирует интефейс для взамодействия с Qiwi P2P API

Используйте qiwip2p.FormatBillMetadataDateTime и qiwip2p.ParseBillMetadataDateTime для работы со значениями BillMetadata.CreationDateTime и BillMetadata.ExpirationDateTime

Официальная документация Qiwi P2P API

https://developer.qiwi.com/ru/p2p-payments/

Documentation

Index

Constants

View Source
const (
	// При открытии формы будут отображаться только указанные
	// способы перевода, если они доступны. Возможные значения см. ниже.
	CustomFieldOptionPaySourcesFilter = "paySourcesFilter"
	// QIWI Кошелек.
	PaySourceQiwi = "qw"
	// Банковская карта.
	PaySourceCard = "card"
	// QIWI Кошелек и банковская карта.
	PaySourceQiwiAndCard = PaySourceQiwi + "," + PaySourceCard
)
View Source
const (
	// Код персонализации вашей формы. Может быть длиной <=255.
	// https://developer.qiwi.com/ru/p2p-payments/#custom
	CustomFieldOptionThemeCode = "themeCode"
)

Variables

View Source
var ErrQiwiP2PAPIError = errors.New("qiwi p2p api error")

Functions

func CreateOplataURL

func CreateOplataURL(publicKey string, options *OplataCreateOptions) string

Создаёт ссылку при переходе по которой отображается форма с выбором способа перевода. publicKey - публичный ключ Qiwi P2p API. Не может быть пустым. При использовании этого способа нельзя гарантировать, что все счета выставлены вами, в отличие от выставления счёта по API.

func FormatBillMetadataDateTime

func FormatBillMetadataDateTime(t time.Time) string

Форматирует time.Time в значение формата для полей с datetime в BillMetadata

func FormatTimeToLifetime

func FormatTimeToLifetime(t time.Time) string

Форматирует time.Time в значение для `OplataCreateOptions.Lifetime`

func ParseBillMetadataDateTime

func ParseBillMetadataDateTime(changedDateTime string) (time.Time, error)

Парсит значение поля с datetime из BillMetedata

func ParseLifetime

func ParseLifetime(str string) (time.Time, error)

Парсит значение `OplataCreateOptions.Lifetime` в time.Time

Types

type API

type API struct {
	// Секретный ключ для авторизации запросов к API
	SecretKey string
	// net/http клиент, который будет использовать для запросов. Не может быть `nil`.
	HttpClient *http.Client
}

Интерфейс для взаимодействия с API P2P-счетов по стандарту OAuth 2.0.

func NewAPI

func NewAPI(secretKey string) *API

func (*API) CancelBill

func (api *API) CancelBill(billID string) (*BillMetadata, error)

Отмена неоплаченного счета

func (*API) CreateBill

func (api *API) CreateBill(billID string, billMeta *BillMetadata) (*BillMetadata, error)

Выставление счета

func (*API) GetBill

func (api *API) GetBill(billID string) (*BillMetadata, error)

Проверка статуса перевода по счету

type BillMetadata

type BillMetadata struct {
	// Ваш идентификатор в сервисе приема платежей для физических лиц p2p.qiwi.com.
	// НЕ ИСПОЛЬЗОВАТЬ С CreateBill().
	SiteID string `json:"siteId,omitempty"`
	// Идентификатор выставляемого сч1та в вашей системе. Может быть длиной <=200.
	// Он должен быть уникальным, и генерироваться на вашей стороне любым способом.
	// Идентификатором может быть любая уникальная последовательность букв или цифр.
	// Также разрешено использование символа подчеркивания (_) и дефиса (-).
	// НЕ ИСПОЛЬЗОВАТЬ С CreateBill().
	BillID string `json:"billId,omitempty"`
	// Ссылка на созданную форму. Перенаправьте пользователя
	// по этой ссылке для оплаты счета или используйте
	// библиотеку Popup, чтобы открыть форму во всплывающем окне.
	// https://developer.qiwi.com/ru/p2p-payments/#popup
	// НЕ ИСПОЛЬЗОВАТЬ С CreateBill().
	PayURL string `json:"payUrl,omitempty"`
	// Идентификаторы пользователя.
	Customer *CustomerIdentificators `json:"customer,omitempty"`
	// Комментарий к счету.
	Comment string `json:"comment,omitempty"`
	// Информация о сумме счета.
	Amount *BillMetadataAmount `json:"amount,omitempty"`
	// Информация о статусе счета.
	// НЕ ИСПОЛЬЗОВАТЬ С CreateBill().
	Status *BillMetadataStatus `json:"status,omitempty"`
	// Объект строковых дополнительных параметров. Возможные элементы: paySourcesFilter, themeCode
	// Может также включать поля (см. константы этого модуля):
	// CustomFieldOptionPaySourcesFilter (с возможными значениями: PaySourceQiwi, PaySourceCard, PaySourceQiwiAndCard)
	// и CustomFieldOptionThemeCode.
	CustomFields map[string]string `json:"customFields,omitempty"`
	// Системная дата создания счета. Формат даты: `ГГГГ-ММ-ДДTчч:мм:сс±чч:мм`.
	// НЕ ИСПОЛЬЗОВАТЬ С CreateBill().
	CreationDateTime string `json:"creationDateTime,omitempty"`
	// Срок действия созданной формы для перевода. Формат даты: `ГГГГ-ММ-ДДTчч:мм:сс±чч:мм`.
	ExpirationDateTime string `json:"expirationDateTime,omitempty"`
}

type BillMetadataAmount

type BillMetadataAmount struct {
	// Сумма счета, округленная до 2 знаков после запятой в меньшую сторону.
	Value string `json:"value,omitempty"`
	// Валюта суммы счета (Alpha-3 ISO 4217 код). Доступные значения: CurrencyRUB, CurrencyKZT (см. константы модуля)
	Currency Currency `json:"currency,omitempty"`
}

type BillMetadataStatus

type BillMetadataStatus struct {
	// Текущий статус счета.
	Value BillMetadataStatusValue `json:"value,omitempty"`
	// Дата обновления статуса. Формат даты: `ГГГГ-ММ-ДДTчч:мм:сс±чч:мм`.
	ChangedDateTime string `json:"changedDateTime,omitempty"`
}

type BillMetadataStatusValue

type BillMetadataStatusValue string

Статус оплаты счета.

const (
	// Счет выставлен, ожидает оплаты.
	BillMetadataStatusValueWaiting BillMetadataStatusValue = "WAITING"
	// Счет оплачен. Финальный.
	BillMetadataStatusValuePaid BillMetadataStatusValue = "PAID"
	// Время жизни счета истекло. Счет не оплачен. Финальный.
	BillMetadataStatusValueExpired BillMetadataStatusValue = "EXPIRED"
	// Счет отклонен. Финальный.
	BillMetadataStatusValueRejected BillMetadataStatusValue = "REJECTED"
)

type Currency

type Currency string

Валюта для счёта.

const (
	// Российский рубль
	CurrencyRUB Currency = "RUB"
	// Казахстанский тенге
	CurrencyKZT Currency = "KZT"
)

type CustomerIdentificators

type CustomerIdentificators struct {
	// Номер телефона пользователя (в международном формате).
	Phone string `json:"phone,omitempty"`
	// E-mail пользователя.
	Email string `json:"email,omitempty"`
	// Идентификатор пользователя в вашей системе.
	Account string `json:"account,omitempty"`
}

type OplataCreateOptions

type OplataCreateOptions struct {
	// Идентификатор выставляемого сч1та в вашей системе. Может быть длиной <=200.
	// Он должен быть уникальным, и генерироваться на вашей стороне любым способом.
	// Идентификатором может быть любая уникальная последовательность букв или цифр.
	// Также разрешено использование символа подчеркивания (_) и дефиса (-).
	BillID string `url:"billId,omitempty"`
	// Сумма, на которую выставляется счёт, округленная в меньшую сторону до 2 десятичных знаков.
	// Должна быть не больше 6 знаков до запятой и не больше 2 знаков после запятой.
	// Пример: `Amount: "123456.78"`
	Amount string `url:"amount,omitempty"`
	// Номер телефона пользователя (в международном формате).
	Phone string `url:"phone,omitempty"`
	// E-mail пользователя.
	Email string `url:"email,omitempty"`
	// Идентификатор пользователя в вашей системе.
	Account string `url:"account,omitempty"`
	// Комментарий к счету. Может быть длиной <=255.
	Comment string `url:"comment,omitempty"`
	// Дополнительные данные счета. Может быть длиной суммарно <=255.
	// Может также включать поля (см. константы этого модуля):
	// CustomFieldOptionPaySourcesFilter (с возможными значениями: PaySourceQiwi, PaySourceCard, PaySourceQiwiAndCard)
	// и CustomFieldOptionThemeCode
	CustomFields []string `url:"customFields,omitempty"`
	// Дата и время по МСК (UTC+3), до которого счёт будет актуален. Формат - ГГГГ-ММ-ДДTччмм, см. ConvertTimeToLifetimeValue().
	// Если перевод по счету не будет произведен до этой даты,
	// ему присваивается финальный статус `EXPIRED` и последующий перевод станет невозможен.
	// **Внимание! По истечении 45 суток от даты выставления счёт автоматически будет переведен в финальный статус**
	Lifetime string `url:"lifetime,omitempty"`
	// URL для переадресации на ваш сайт в случае успешного перевода
	SuccessURL string `url:"successUrl,omitempty"`
}

Необязательные параметры для выставления сч1та.

Jump to

Keyboard shortcuts

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