Добавьте несколько продуктов в PayPal Express Checkout

В течение нескольких часов я пытаюсь перечислить в PayPal Express Checkout несколько продуктов. Это необходимо для того, чтобы повысить доверие клиентов к тому, что они покупают.

Как я могу создать приведенный ниже массив, чтобы PayPal мог отображать его как несколько продуктов?

Разместить 1 товар не проблема. Вот код:

$requestParams = array(
       'RETURNURL' => '***',
       'CANCELURL' => '***'
    );

    $item = array('L_PAYMENTREQUEST_0_NAME0' => 'Test product ',
                  'L_PAYMENTREQUEST_0_DESC0' => 'Description of my item',
                  'L_PAYMENTREQUEST_0_AMT0' => '0.01',
                  'L_PAYMENTREQUEST_0_QTY0' => '1'
                 );

    $orderParams = array(
       'PAYMENTREQUEST_0_AMT' => '0.01',
       'PAYMENTREQUEST_0_CURRENCYCODE' => 'USD',
       'PAYMENTREQUEST_0_ITEMAMT' => '0.01',
       'PAYMENTREQUEST_0_SHIPPINGAMT' => '0'
    );


$response = $core->paypal->request('SetExpressCheckout',$requestParams + $item + $orderParams);

Я пробовал множество комбинаций, таких как добавление ключей и значений в массив $item, чтобы добавить больше продуктов в список:

Я также пытался добавить аналогичным образом ключи в массив $orderParams, но безуспешно. Либо я получил ошибки от PayPal API, либо PayPal перечислил только первый продукт.

$item = array('L_PAYMENTREQUEST_0_NAME0' => 'Test product ',
              'L_PAYMENTREQUEST_0_DESC0' => 'Description of my item',
              'L_PAYMENTREQUEST_0_AMT0' => '0.01',
              'L_PAYMENTREQUEST_0_QTY0' => '1',

              'L_PAYMENTREQUEST_1_NAME1' => 'Test product 1',
              'L_PAYMENTREQUEST_1_DESC1' => 'Description of my next item',
              'L_PAYMENTREQUEST_1_AMT1' => '0.01',
              'L_PAYMENTREQUEST_1_QTY1' => '1'
             );

Это моя первая интеграция, я понимаю, как работает PayPal, но не могу остановиться на этом. Спасибо.


person Drk_alien    schedule 07.09.2013    source источник


Ответы (1)


Хорошо, это был простой трюк. Для тех, кому это может понадобиться:

L_PAYMENTREQUEST_n_NAMEm - "n" - номер транзакции, 0 для 1 отдельной транзакции - "m" - номер продукта

$item = array('L_PAYMENTREQUEST_0_NAME0' => 'Test product ', //title of the first product
                  'L_PAYMENTREQUEST_0_DESC0' => 'Description of my item', //description of the forst product
                  'L_PAYMENTREQUEST_0_AMT0' => '0.01', //amount first product
                  'L_PAYMENTREQUEST_0_QTY0' => '1', //qty first product

                  'L_PAYMENTREQUEST_0_NAME1' => 'Test ', // title of the second product
                  'L_PAYMENTREQUEST_0_DESC1' => 'Description item',//description of the second product
                  'L_PAYMENTREQUEST_0_AMT1' => '0.01',//amount second product
                  'L_PAYMENTREQUEST_0_QTY1' => '1'//qty second product
                 );

    $orderParams = array(
       'PAYMENTREQUEST_0_PAYMENTACTION'=>'Sale', //becouse we want to sale something
       'PAYMENTREQUEST_0_AMT' => '0.02', //total amount (items amount+shipping..etc)
       'PAYMENTREQUEST_0_CURRENCYCODE' => 'USD', //curency code
       'PAYMENTREQUEST_0_ITEMAMT' => '0.02', //total amount items, without shipping and other taxes
       'PAYMENTREQUEST_0_SHIPPINGAMT' => '0' //the shipping amount, will be 0 coz we sell digital products
    );

Выше вы можете увидеть пример для двух продуктов. Эти ключи и значения будут отправлены в API экспресс-оплаты для доставки токена. Переменные будут отправлены с помощью GET.

person Drk_alien    schedule 09.09.2013