Documentation ¶
Index ¶
- func CheckIP(ip net.IP) error
- func NewDealWebhookHandler(checkIP bool, webhook func(*models.DealWebhook)) http.HandlerFunc
- func NewPaymentWebhookHandler(checkIP bool, webhook func(*models.PaymentWebhook)) http.HandlerFunc
- type Client
- func (c *Client) Deals() *Deals
- func (c *Client) Me() (*models.PersonalInfo, error)
- func (c *Client) Payments() *Payments
- func (c *Client) Payouts() *Payouts
- func (c *Client) PersonalData() *PersonalData
- func (c *Client) Reciepts() *Reciepts
- func (c *Client) Refounds() *Refounds
- func (c *Client) SBPList() (*models.SBPList, error)
- func (c *Client) SelfEmployed() *SelfEmployed
- func (c *Client) SplitInfo(id string) (*models.PersonalInfo, error)
- func (c *Client) Webhooks(token string) *Webhooks
- func (c *Client) WithIdempotenceKey(key string) *Client
- type Deals
- type Payments
- func (p *Payments) Cancel(id string) (*models.Payment, error)
- func (p *Payments) Capture(id string, req models.CaptureRequest) (*models.Payment, error)
- func (p *Payments) Create(req models.PaymentRequest) (*models.Payment, error)
- func (p *Payments) Info(id string) (*models.Payment, error)
- func (p *Payments) List(req models.ListRequest) (*models.PaymentListResponse, error)
- type Payouts
- type PersonalData
- type Reciepts
- type Refounds
- type SelfEmployed
- type Webhooks
Examples ¶
- Client.Me
- Client.SBPList
- Deals.Create
- Deals.Info
- Deals.List
- Payments.Cancel
- Payments.Capture
- Payments.Create
- Payments.Info
- Payments.List
- Payouts.Create
- Payouts.Info
- PersonalData.Create
- PersonalData.Info
- Reciepts.Create
- Reciepts.Info
- Reciepts.List
- Refounds.Create
- Refounds.Info
- Refounds.List
- SelfEmployed.Create
- SelfEmployed.Info
- Webhooks.Create
- Webhooks.Delete
- Webhooks.List
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewDealWebhookHandler ¶
func NewDealWebhookHandler(checkIP bool, webhook func(*models.DealWebhook)) http.HandlerFunc
func NewPaymentWebhookHandler ¶
func NewPaymentWebhookHandler(checkIP bool, webhook func(*models.PaymentWebhook)) http.HandlerFunc
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func (*Client) Me ¶
func (c *Client) Me() (*models.PersonalInfo, error)
Метод для получения информации о своем магазине или шлюзе ref: https://yookassa.ru/developers/api#me
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { c := yookassa.NewClient(ycID, ycKey) info, _ := c.Me() fmt.Println(info.AccountID) }
Output:
func (*Client) PersonalData ¶
func (c *Client) PersonalData() *PersonalData
func (*Client) SBPList ¶
Метод для получения актуального списка банков участвующих в системе быстрых платежей
ref: https://yookassa.ru/developers/api#sbp_banks
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { c := yookassa.NewClient(ycID, ycKey) list, _ := c.SBPList() for _, info := range list.Items { fmt.Println(info.Name) } }
Output:
func (*Client) SelfEmployed ¶
func (c *Client) SelfEmployed() *SelfEmployed
func (*Client) SplitInfo ¶
func (c *Client) SplitInfo(id string) (*models.PersonalInfo, error)
Информация о настройках магазина для сплитирования платежей
Метод работает аналогично методу ME, за исключением того что в запрос передается идентификатор магазина продавца ref: https://yookassa.ru/developers/api#me
func (*Client) WithIdempotenceKey ¶
type Deals ¶
type Deals struct {
// contains filtered or unexported fields
}
Структура с методами для управления сделками
ref: https://yookassa.ru/developers/api#deal
func (*Deals) Create ¶
Создание новой сделки
В ответ на запрос придет объект сделки в актуальном статусе.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/models" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { deals := yookassa.NewClient(ycID, ycKey).Deals() deal, _ := deals.Create(models.DealRequest{ Type: "safe_deal", FeeMoment: "payment_succeeded", Metadata: models.Metadata{ "order_id": "37", }, Description: "SAFE_DEAL 123554642-2432FF344R", }) fmt.Println(deal.ID) }
Output:
func (*Deals) Info ¶
Запрос информации о сделке
В ответ на запрос придет объект сделки в актуальном статусе.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { deals := yookassa.NewClient(ycID, ycKey).Deals() deal, _ := deals.Info("some_deal_id") fmt.Println(deal.ID) }
Output:
func (*Deals) List ¶
func (d *Deals) List(req models.ListRequest) (*models.DealListResponse, error)
Запрос списка сделок
В ответ на запрос вернется список сделок с учетом переданных параметров. В списке будет информация о сделках, созданных за последние 3 года. Список будет отсортирован по времени создания сделок в порядке убывания.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/models" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { deals := yookassa.NewClient(ycID, ycKey).Deals() resp, _ := deals.List(models.ListRequest{ Limit: 10, }) for _, deal := range resp.Items { fmt.Println(deal.ID) } }
Output:
type Payments ¶
type Payments struct {
// contains filtered or unexported fields
}
Структура содержит методы для работы с платежами
ref: https://yookassa.ru/developers/api#payment
func (*Payments) Cancel ¶
Запрос отмены платежа
В ответ на запрос придет объект платежа в актуальном статусе.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { p := yookassa.NewClient(ycID, ycKey).Payments() item, _ := p.Cancel("215d8da0-000f-50be-b000-0003308c89be") fmt.Println(item.ID) }
Output:
func (*Payments) Capture ¶
Запрос для подтверждения платежа
В ответ на запрос придет объект платежа в актуальном статусе.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/models" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { p := yookassa.NewClient(ycID, ycKey).Payments() item, _ := p.Capture("215d8da0-000f-50be-b000-0003308c89be", models.CaptureRequest{ Amount: &models.Amount{ Value: "2.00", Currency: "RUB", }, }) fmt.Println(item.ID) }
Output:
func (*Payments) Create ¶
Создание объекта платежа
В ответ на запрос придет объект платежа в актуальном статусе.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/models" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { p := yookassa.NewClient(ycID, ycKey).Payments() item, _ := p.Create(models.PaymentRequest{ Amount: models.Amount{ Value: "2.00", Currency: "RUB", }, PaymentMethodData: &models.PaymentMethod{ Type: "bank_card", }, Confirmation: &models.Confirmation{ Type: "redirect", ReturnURl: "https://www.merchant-website.com/return_url", }, Description: "Заказ №72", }) fmt.Println(item.ID) }
Output:
func (*Payments) Info ¶
Запрос для получения информации о платеже
В ответ на запрос придет объект платежа в актуальном статусе.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { p := yookassa.NewClient(ycID, ycKey).Payments() item, _ := p.Info("215d8da0-000f-50be-b000-0003308c89be") fmt.Println(item.ID) }
Output:
func (*Payments) List ¶
func (p *Payments) List(req models.ListRequest) (*models.PaymentListResponse, error)
Запрос списка платежей
В ответ на запрос вернется список платежей с учетом переданных параметров. В списке будет информация о платежах, созданных за последние 3 года. Список будет отсортирован по времени создания платежей в порядке убывания.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/models" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { p := yookassa.NewClient(ycID, ycKey).Payments() list, _ := p.List(models.ListRequest{ Limit: 10, }) for _, item := range list.Items { fmt.Println(item.ID) } }
Output:
type Payouts ¶
type Payouts struct {
// contains filtered or unexported fields
}
Структура содержит методы для работы с выплатами
ref: https://yookassa.ru/developers/api#payout
func (*Payouts) Create ¶
Создание новой выплаты
В ответ на запрос придет объект выплаты в актуальном статусе.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/models" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { p := yookassa.NewClient(ycID, ycKey).Payouts() item, _ := p.Create(models.PayoutRequest{ Amount: models.Amount{ Value: "320.00", Currency: "RUB", }, PayoutToken: "<Синоним банковской карты>", Description: "Выплата по заказу №37", Metadata: models.Metadata{ "order_id": "37", }, Deal: &models.DealItem{ ID: "dl-285e5ee7-0022-5000-8000-01516a44b147", }, }) fmt.Println(item.ID) }
Output:
func (*Payouts) Info ¶
Запрос информации о выплате по ее ID
В ответ на запрос придет объект выплаты в актуальном статусе.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { p := yookassa.NewClient(ycID, ycKey).Payouts() item, _ := p.Info("po-285ec15d-0003-5000-a000-08d1bec7dade") fmt.Println(item.ID) }
Output:
type PersonalData ¶
type PersonalData struct {
// contains filtered or unexported fields
}
Структура предоставляет доступ к методам управления персональными данными
ref: https://yookassa.ru/developers/api#personal_data
func (*PersonalData) Create ¶
func (pd *PersonalData) Create(req models.PersonalDataRequest) (*models.PersonalData, error)
Создание персональных данных
Используйте этот запрос, чтобы создать в ЮKassa объект персональных данных. В запросе необходимо передать фамилию, имя, отчество пользователя и указать, с какой целью эти данные будут использоваться.
В ответ на запрос придет объект персональных данных в актуальном статусе.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/models" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { pd := yookassa.NewClient(ycID, ycKey).PersonalData() item, _ := pd.Create(models.PersonalDataRequest{ Type: "sbp_payout_recipient", LastName: "Иванов", FirstName: "Иван", MiddleName: "Иванович", Metadata: models.Metadata{ "recipient_id": "37", }, }) fmt.Println(item.ID) }
Output:
func (*PersonalData) Info ¶
func (pd *PersonalData) Info(id string) (*models.PersonalData, error)
Информация о персональных данных
С помощью этого запроса вы можете получить информацию о текущем статусе объекта персональных данных по его уникальному идентификатору.
В ответ на запрос придет объект персональных данных в актуальном статусе.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { pd := yookassa.NewClient(ycID, ycKey).PersonalData() item, _ := pd.Info("some_pd_id") fmt.Println(item.ID) }
Output:
type Reciepts ¶
type Reciepts struct {
// contains filtered or unexported fields
}
Структура содержит методы для работы с чеками
ref: https://yookassa.ru/developers/api#refund
func (*Reciepts) Create ¶
Создание нового чека
В ответ на запрос придет объект чека в актуальном статусе.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/models" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { r := yookassa.NewClient(ycID, ycKey).Reciepts() item, _ := r.Create(models.RecieptRequest{ Customer: models.Customer{ FullName: "Ivanov Ivan Ivanovich", Email: "email@email.ru", Phone: "79211234567", INN: "6321341814", }, PaymentID: "24b94598-000f-5000-9000-1b68e7b15f3f", Type: "payment", Send: true, Items: []models.Item{ { Description: "Наименование товара 1", Quantity: "1", Amount: models.Amount{ Value: "14000.00", Currency: "RUB", }, VATCode: 2, PaymentMode: "full_payment", PaymentSubject: "commodity", CountryOfOriginCode: "CN", }, }, Settlements: []models.Settlement{ { Type: "prepayment", Amount: models.Amount{ Value: "8000.00", Currency: "RUB", }, }, { Type: "prepayment", Amount: models.Amount{ Value: "6000.00", Currency: "RUB", }, }, }, }) fmt.Sprintln(item.ID) }
Output:
func (*Reciepts) Info ¶
Запрос информации о чеке
В ответ на запрос придет объект чека в актуальном статусе.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { r := yookassa.NewClient(ycID, ycKey).Reciepts() info, _ := r.Info("rt-2da5c87d-0384-50e8-a7f3-8d5646dd9e10") fmt.Sprintln(info.ID) }
Output:
func (*Reciepts) List ¶
func (r *Reciepts) List(req models.ListRequest) (*models.ReceiptListResponse, error)
Получение списока чеков
В ответ на запрос вернется список чеков с учетом переданных параметров. В списке будет информация о чеках, созданных за последние 3 года. Список будет отсортирован по времени создания чеков в порядке убывания.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/models" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { r := yookassa.NewClient(ycID, ycKey).Reciepts() list, _ := r.List(models.ListRequest{Limit: 10}) for _, item := range list.Items { fmt.Println(item.ID) } }
Output:
type Refounds ¶
type Refounds struct {
// contains filtered or unexported fields
}
Структура содержит методы для работы с возвратами
ref: https://yookassa.ru/developers/api#refund
func (*Refounds) Create ¶
Создание возврата
В ответ на запрос придет объект возврата в актуальном статусе.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/models" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { r := yookassa.NewClient(ycID, ycKey).Refounds() item, _ := r.Create(models.RefoundRequest{ Amount: models.Amount{ Value: "2.00", Currency: "RUB", }, PaymentID: "215d8da0-000f-50be-b000-0003308c89be", }) fmt.Println(item.ID) }
Output:
func (*Refounds) Info ¶
Запрос информации о возврате
В ответ на запрос придет объект возврата в актуальном статусе.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { r := yookassa.NewClient(ycID, ycKey).Refounds() item, _ := r.Info("215d8da0-000f-50be-b000-0003308c89be") fmt.Println(item.ID) }
Output:
func (*Refounds) List ¶
func (r *Refounds) List(req models.ListRequest) (*models.RefoundListResponse, error)
Запрос списка возвратов
В ответ на запрос вернется список возвратов с учетом переданных параметров. В списке будет информация о возвратах, созданных за последние 3 года. Список будет отсортирован по времени создания возвратов в порядке убывания.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/models" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { r := yookassa.NewClient(ycID, ycKey).Refounds() list, _ := r.List(models.ListRequest{ Limit: 10, }) for _, item := range list.Items { fmt.Println(item.ID) } }
Output:
type SelfEmployed ¶
type SelfEmployed struct {
// contains filtered or unexported fields
}
Структура предоставляет доступ к методам управления самозанятым
ref: https://yookassa.ru/developers/api#self_employed
func (*SelfEmployed) Create ¶
func (se *SelfEmployed) Create(req models.SelfEmployedRequest) (*models.SelfEmployed, error)
Создание нового самозанятого
Используйте этот запрос, чтобы создать в ЮKassa объект самозанятого. В запросе необходимо передать ИНН или телефон самозанятого для идентификации в сервисе Мой налог, сценарий подтверждения пользователем заявки ЮMoney на получение прав для регистрации чеков и описание самозанятого.
Идентификатор созданного объекта самозанятого необходимо использовать в запросе на проведение выплаты.
В ответ на запрос придет объект самозанятого в актуальном статусе.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/models" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { se := yookassa.NewClient(ycID, ycKey).SelfEmployed() item, _ := se.Create(models.SelfEmployedRequest{ Itn: "123456789012", Description: "Курьер 001", Confirmation: &models.Confirmation{ Type: "redirect", }, Metadata: models.Metadata{ "courier_id": "001", }, }) fmt.Printf(item.ID) }
Output:
func (*SelfEmployed) Info ¶
func (se *SelfEmployed) Info(id string) (*models.SelfEmployed, error)
Информация о самозанятом
С помощью этого запроса вы можете получить информацию о текущем статусе самозанятого по его уникальному идентификатору.
В ответ на запрос придет объект самозанятого в актуальном статусе.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ) func main() { se := yookassa.NewClient(ycID, ycKey).SelfEmployed() item, _ := se.Info("se_id") fmt.Printf(item.ID) }
Output:
type Webhooks ¶
type Webhooks struct {
// contains filtered or unexported fields
}
func (*Webhooks) Create ¶
Создание webhook
Запрос позволяет подписаться на уведомления об основных событиях (например, переход платежа в статус succeeded).
Если вы хотите получать уведомления о нескольких событиях, вам нужно для каждого из них создать свой webhook. Для каждого OAuth-токена нужно создавать свой набор webhook.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/models" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ycToken = "" ) func main() { webhooks := yookassa.NewClient(ycID, ycKey).Webhooks(ycToken) wh, _ := webhooks.Create(models.WebhookRequest{ Event: "payment.succeeded", URL: "https://www.merchant-website.com/notification_url", }) fmt.Println(wh.ID) }
Output:
func (*Webhooks) Delete ¶
Удаление webhook
Запрос позволяет отписаться от уведомлений о событии для переданного OAuth-токена. Чтобы удалить webhook, вам нужно передать в запросе его идентификатор.
Example ¶
package main import ( "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ycToken = "" ) func main() { webhooks := yookassa.NewClient(ycID, ycKey).Webhooks(ycToken) _ = webhooks.Delete("some_webhook_id") }
Output:
func (*Webhooks) List ¶
func (w *Webhooks) List() (*models.WebhookListResponse, error)
Список созданных webhook
Запрос позволяет узнать, какие webhook есть для переданного OAuth-токена.
В ответ на запрос придет актуальный список объектов webhook.
Example ¶
package main import ( "fmt" "github.com/ReanSn0w/go-yookassa/pkg/yookassa" ) const ( ycID = "" ycKey = "" ycToken = "" ) func main() { webhooks := yookassa.NewClient(ycID, ycKey).Webhooks(ycToken) list, _ := webhooks.List() for _, wh := range list.Items { fmt.Println(wh.ID) } }
Output: