Принимайте оплату через Shopify API

В админке Shopify для каждого заказа есть кнопка «Принять платеж». Есть ли эквивалентное действие, которое можно выполнить через API?


person alnorth29    schedule 22.08.2012    source источник


Ответы (2)


да. Вы можете создать транзакцию и зафиксировать сумму, которая была ранее авторизована.

 ShopifyAPI::Transaction.create({:order_id => order.id, :kind => 'capture'})
person David Lazar    schedule 22.08.2012
comment
Вот документация по транзакциям: api.shopify.com/transactions.html - person David Underwood; 23.08.2012

Да, убедитесь, что исходный заказ создан через API и имеет статус «ожидающий», вид транзакции «авторизация» и статус транзакции «успешная». Тогда, когда вы фиксируете платеж, это только меняет финансовый статус. Вы не можете просто изменить значение финансового статуса в заказе, не зафиксировав транзакцию.

Итак, это исходный запрос на создание заказа с использованием API:

POST /admin/orders.json

{
   "financial_status": "pending",
   "fulfillment_status": "fulfilled",
   "transactions": [{
      "amount": "21",
      "kind": "authorization",
      "gateway": "Gateway",
      "status": "success",
      "source_name": "My API"
   }]
}

А затем, чтобы зафиксировать транзакцию, сделайте следующее:

POST /admin/orders/{order_id}/transactions.json

{
  "transaction": {
    "kind": "capture"
  }
}

Убедитесь, что в вашем API включены права на запись для заказов: https://redeeem.myshopify.com/admin/apps/private

person kaleazy    schedule 26.04.2018