У меня есть динамическая форма заказа/корзина для покупок, которая отправляет Json через ajax на PHP, а затем она становится доступной через PayPal rest api. Пользователь может купить сразу несколько продуктов.Несколько элементов с API-интерфейсом PayPal REST
Я в основном клонировал этот пример: http://paypal.github.io/PayPal-PHP-SDK/sample/doc/payments/CreatePaymentUsingPayPal.html, и я получил его работу с жестко закодированными элементами/переменными.
Некоторые PHP:
$data = json_decode(file_get_contents('php://input'), true);
$items = array();
$arr_length = count($data);
for ($i=0;$i<$arr_length;$i++) {
$item[$i] = new Item();
$item[$i]->setName($data[$i]['productName'])
->setCurrency($data[$i]['currency'])
->setQuantity($data[$i]['quantity'])
->setPrice($data[$i]['price'])
->setSku(uniqid());
$items[] = $item[$i];
}
$itemList = new ItemList();
$itemList->setItems($items);
получает JSON передается так:
$.ajax({
url: "process.php",
type: 'POST',
data: jsonData,
success: function(data){
// location = data;
console.log(data);
},
error:function(){
$("#status").html('There is error while submit');
}
});
Вот результат var_dump ($ единиц);
<br />
<b>Warning</b>: Invalid argument supplied for foreach() in <b>\vendor\paypal\rest-api-sdk-php\lib\PayPal\Common\PayPalResourceModel.php</b> on line <b>45</b><br />
array(3) {
[0]=>
object(PayPal\Api\Item)#8 (1) {
["_propMap":"PayPal\Common\PayPalModel":private]=>
array(5) {
["name"]=>
string(15) "Product1"
["currency"]=>
string(3) "EUR"
["quantity"]=>
int(1)
["price"]=>
string(2) "99"
["sku"]=>
string(13) "555c79be1c489"
}
}
[1]=>
object(PayPal\Api\Item)#9 (1) {
["_propMap":"PayPal\Common\PayPalModel":private]=>
array(5) {
["name"]=>
string(15) "Product2"
["currency"]=>
string(3) "EUR"
["quantity"]=>
string(2) "21"
["price"]=>
string(4) "2079"
["sku"]=>
string(13) "555c79be1c4b3"
}
}
[2]=>
object(PayPal\Api\Item)#10 (1) {
["_propMap":"PayPal\Common\PayPalModel":private]=>
array(5) {
["name"]=>
string(15) "Product3"
["currency"]=>
string(3) "EUR"
["quantity"]=>
int(1)
["price"]=>
string(2) "99"
["sku"]=>
string(13) "555c79be1c4d2"
}
}
}
Не знаю, в чем проблема. Когда я пересылаю фактическое $ утверждениеUrl = $ payment-> getApprovalLink(), я попадаю в цикл перенаправления.
Можете ли вы сделать печать данных, возвращаемых методом create(). Я думаю, что проблема связана не с входом, а с ответом, который вы возвращаете. –