InSales API - Способы оплаты

Материал из Insales Wiki
Перейти к: навигация, поиск

Основное

Поддерживаемые форматы

xml, json.

Ресурсы

  • Коллекция: /admin/payment_gateways.%format%
  • Экземпляр: /admin/payment_gateways/:id.%format%

Получение списка

Запрос: GET /admin/payment_gateways.xml

Получение информации о способе оплаты

Запрос: GET /admin/payment_gateways/#{id}

Добавление

Запрос: POST /admin/payment_gateways.xml

Пример xml данных:

<?xml version="1.0"?>
<payment-gateway>
    <margin type="decimal">10.0</margin>
    <position type="integer">0</position>
    <type>PaymentGateway::PostCache</type>
    <title>Наложенным платежом</title>
    <description>Это один из способов оплаты</description>
</payment-gateway>

Удаление

Запрос: DELETE /admin/payment_gateways/#{id}.xml

Поля

Общие для всех:

position порядок
type тип способа оплаты(см. ниже)
description описание
title название
margin наценка
payment_delivery_variants способы доставки для данного способа оплаты

Типы сособов оплаты

  • PaymentGateway::PayU
  • PaymentGateway::PayUUa
  • PaymentGateway::Cod
  • PaymentGateway::Qiwi
  • PaymentGateway::Webmoney
  • PaymentGateway::Robox
  • PaymentGateway::RoboxCredit
  • PaymentGateway::Paypal
  • PaymentGateway::BankBill
  • PaymentGateway::BankBillUa
  • PaymentGateway::BankBillKz
  • PaymentGateway::JuridicalPersonBill
  • PaymentGateway::AssistNew
  • PaymentGateway::Liqpay
  • PaymentGateway::PostCache
  • PaymentGateway::Portmone
  • PaymentGateway::Activepay
  • PaymentGateway::Platron
  • PaymentGateway::Payonlinesystem
  • PaymentGateway::PrivatbankNew
  • PaymentGateway::RbkMoney
  • PaymentGateway::YandexMoneyNew
  • PaymentGateway::Custom
  • PaymentGateway::External
  • PaymentGateway::IntellectMoney

Привязка способов доставки

Для добавления и удаления способов доставки, доступных для данного способа оплаты, используется поле payment_delivery_variants_attributes. Расмотрим пример. Имеется способ доставки (RESTful адрес http://some.domain/admin/payment_gateways/2958.json или .xml):

{
 created_at: "2010-01-21T18:28:54+03:00",
 id: 2958,
 margin: "0.0",
 position: 0,
 type: "PaymentGateway::PostCache",
 updated_at: "2012-01-24T16:11:36+04:00",
 title: "Оплата в кредит",
 description: "",
 payment_delivery_variants: [
   {
     created_at: "2012-12-27T19:23:00+04:00",
     delivery_variant_id: 106734,
     id: 181865,
     payment_gateway_id: 2958
   },
   {
     created_at: "2013-03-14T11:10:33+04:00",
     delivery_variant_id: 119630,
     id: 203513,
     payment_gateway_id: 2958
   }
 ]
}

или в xml:

<?xml version="1.0"?>
<post-cache>
   <created-at type="timestamp">2010-01-21 18:28:54 +0300</created-at>
   <id type="integer">2958</id>
   <margin type="decimal">-90.0</margin>
   <position type="integer">0</position>
   <type>PaymentGateway::PostCache</type>
   <updated-at type="timestamp">2012-01-24 16:11:36 +0400</updated-at>
   <title>Оплата в кредит</title>
   <description/>
   <payment-delivery-variants type="array">
       <payment-delivery-variant>
           <created-at type="timestamp">2012-12-27 19:23:00 +0400</created-at>
           <delivery-variant-id type="integer">106734</delivery-variant-id>
           <id type="integer">181865</id>
           <payment-gateway-id type="integer">2958</payment-gateway-id>
       </payment-delivery-variant>
       <payment-delivery-variant>
           <created-at type="timestamp">2013-03-14 11:10:33 +0400</created-at>
           <delivery-variant-id type="integer">119630</delivery-variant-id>
           <id type="integer">203513</id>
           <payment-gateway-id type="integer">2958</payment-gateway-id>
       </payment-delivery-variant>
   </payment-delivery-variants>
   <type>PaymentGateway::PostCache</type>
</post-cache>

Для удаления способа доставки с id = 119630 нужно выполнить запрос PUT по адресу http://some.domain/admin/payment_gateways/2958.json c данными:

{
 payment_gateway: {
   payment_delivery_variants_attributes: [
     {
       _destroy: true,
       id: 203513
     }
   ]
 }
}

или xml:

<?xml version="1.0"?>
<payment-gateway>
   <payment-delivery-variants-attributes type="array">
       <payment-delivery-variant>
           <_destroy type="boolean">true</_destroy>
           <id type="integer">203513</id>
       </payment-delivery-variant>
   </payment-delivery-variants-attributes>
</payment-gateway>

Чтобы вновь добавить это способ доставки, и ещё один с id = 53 выполните запрос PUT по адресу http://some.domain/admin/payment_gateways/2958.json:

{
 payment_gateway: {
   payment_delivery_variants_attributes: [
     {
       delivery_variant_id: 119630
     },
     {
       delivery_variant_id: 53
     }
   ]
 }
}

или xml:

<?xml version="1.0"?>
<payment-gateway>
   <payment-delivery-variants-attributes type="array">
       <payment-delivery-variant>
           <delivery-variant-id type="integer">119630</delivery-variant-id>
       </payment-delivery-variant>
       <payment-delivery-variant>
           <delivery-variant-id type="integer">53</delivery-variant-id>
       </payment-delivery-variant>
   </payment-delivery-variants-attributes>
</payment-gateway>

Обратите внимание, что способы доставки добавляются по значению их id (delivery_variant_id), а удаляются по id записи payment_delivery_variants.