WeChat
 Особенности
 Сценарии интеграции
Доступно только для самостоятельной интеграции.
 Оплата онлайн с помощью WeChat
Шаг 1. Создайте платеж , в объекте
payment_method_data
передайте тип
wechat
, в объекте
confirmation
передайте тип
qr
, а в параметре
capture
передайте значение
true
, чтобы платеж автоматически перешел в статус
succeeded
после оплаты.
Оплата через WeChat не может быть двухстадийной — если передать
capture
со значением
false
или не передать параметр
capture
, платеж не пройдет.
Пример запроса на создание платежа
cURL
PHP
Python
curl https://payment.yandex.net/api/v3/payments \
  -X POST \
  -u <Идентификатор магазина>:<Секретный ключ> \
  -H 'Idempotence-Key: <Ключ идемпотентности>' \
  -H 'Content-Type: application/json' \
  -d '{
        "amount": {
          "value": "2.00",
          "currency": "RUB"
        },
        "payment_method_data": {
          "type": "wechat"
        },
        "confirmation": {
          "type": "qr"
        },
        "capture": true,
        "description": "Заказ №72"
      }'
Шаг 2. В параметре
confirmation_data
Яндекс.Касса передаст данные для генерации QR-кода. Сгенерируйте QR-код с помощью любого доступного инструмента.
Пример созданного объекта платежа
JSON
{
    "id": "2475f981-000f-5000-8000-1538b1392c2a",
    "status": "pending",
    "paid": false,
    "amount": {
        "value": "2.00",
        "currency": "RUB"
    },
    "confirmation": {
        "type": "qr",
        "confirmation_data": "weixin://wxpay/bizpayurl?pr=kxK2lXq"
    },
    "created_at": "2019-05-21T11:49:21.279Z",
    "description": "Заказ № 72",
    "metadata": {},
    "payment_method": {
        "type": "wechat",
        "id": "2475f981-000f-5000-8000-1538b1392c2a",
        "saved": false
    },
    "recipient": {
        "account_id": "100001",
        "gateway_id": "1000001"
    },
    "refundable": false,
    "test": false
}
Шаг 3. Отобразите сгенерированный QR-код на странице оплаты, чтобы пользователь мог просканировать его, используя приложение WeChat. Когда пользователь подтвердит платеж, объект платежа  перейдет в статус
succeeded
.
Пример объекта платежа в статусе succeeded
JSON
{
    "id": "2475f981-000f-5000-8000-1538b1392c2a",
    "status": "succeeded",
    "paid": true,
    "amount": {
        "value": "2.00",
        "currency": "RUB"
    },
    "captured_at": "2019-05-21T12:10:19.732Z",
    "created_at": "2019-05-21T12:10:12.509Z",
    "description": "Заказ № 72",
    "metadata": {},
    "payment_method": {
        "type": "wechat",
        "id": "2475f981-000f-5000-8000-1538b1392c2a",
        "saved": false
    },
    "recipient": {
        "account_id": "100001",
        "gateway_id": "1000001"
    },
    "refundable": true,
    "refunded_amount": {
        "value": "0.00",
        "currency": "RUB"
    },
    "test": false
}
 Особенности возврата
Платеж со способом оплаты WeChat можно вернуть, если платеж успешно выполнен (объект платежа  в статусе
succeeded
) и с момента оплаты прошло не более 90 суток.
Перед тем, как создавать возврат, запросите информацию о платеже  и проверьте значения параметров
refundable
и 
refunded_amount
:
  • если у 
    refundable
    значение
    true
    , платеж нужно вернуть по API Яндекс.Кассы;
  • если у 
    refundable
    значение
    false
    и не сделан полный возврат (
    refunded_amount
    меньше
    amount
    ), платеж нужно вернуть по платежному поручению;
  • в остальных случаях вернуть платеж нельзя.
Если вы уже создавали частичные возвраты для этого платежа, то сумма возврата не должна превышать оставшейся суммы платежа.
 Что почитать еще
Основы проведения платежейНеуспешные платежиОплата по 54-ФЗ