Bonjour,
J'ai mis en place un systeme de payement via paypal en suivent le tutoriel de @Grafikart !
Avec 1 seul produit tous fonctionne, mais quand je mais quand j'ajoute plusieurs différent sa ne fonctionne plus et sa me mais un message comme celui-ci :
Fatal error: Uncaught PayPal\Exception\PayPalConnectionException: Got Http response code 400 when accessing https://api.sandbox.paypal.com/v1/payments/payment. in /public/vendor/paypal/rest-api-sdk-php/lib/PayPal/Core/PayPalHttpConnection.php:202 Stack trace: #0 /public/vendor/paypal/rest-api-sdk-php/lib/PayPal/Transport/PayPalRestCall.php(78): PayPal\Core\PayPalHttpConnection->execute('{"transactions"...') #1 /public/vendor/paypal/rest-api-sdk-php/lib/PayPal/Common/PayPalResourceModel.php(104): PayPal\Transport\PayPalRestCall->execute(Array, '/v1/payments/pa...', 'POST', '{"transactions"...', Array) #2 /public/vendor/paypal/rest-api-sdk-php/lib/PayPal/Api/Payment.php(576): PayPal\Common\PayPalResourceModel::executeCall('/v1/payments/pa...', 'POST', '{"transactions"...', NULL, Object(PayPal\Rest\ApiContext), Object(PayPal\Transport\PayPalRestCall)) #3 /public/cores/Payment.php(81): PayPal\Api\Paymen in /public/vendor/paypal/rest-api-sdk-php/lib/PayPal/Core/PayPalHttpConnection.php on line 202
J'ai remarquer que dans le ItemList() il y a que le dernier qui s'ajoute...
$_SESSION[$this->getTrade()->getSessionName()]['products'] Affiche se tableau :
array(2) {
[0]=>
object(stdClass)#67 (4) {
["product_id"]=>
string(1) "1"
["product_name"]=>
string(16) "LG TV 01456F8 4k"
["product_price"]=>
string(3) "899"
["product_statut"]=>
string(1) "0"
}
[1]=>
object(stdClass)#60 (4) {
["product_id"]=>
string(1) "2"
["product_name"]=>
string(30) "Samsung TV 047356F8 4k SmartTV"
["product_price"]=>
string(4) "1250"
["product_statut"]=>
string(1) "0"
}
}
la boucle ressemble à sa :
$list = new ItemList();
foreach($_SESSION[$this->getTrade()->getSessionName()]['products'] as $product):
$item = (new Item())
->setName($product->product_id)
->setPrice($product->product_price)
->setCurrency(Json::get('modules', 'trade', 'currency'))
->setQuantity($_SESSION[$this->getTrade()->getSessionName()]['quantity'][$product->product_id]);
return $list->addItem($item);
endforeach;
et la liste des items retourne se tableau :
object(PayPal\Api\ItemList)#59 (1) {
["_propMap":"PayPal\Common\PayPalModel":private]=>
array(1) {
["items"]=>
array(1) {
[0]=>
object(PayPal\Api\Item)#60 (1) {
["_propMap":"PayPal\Common\PayPalModel":private]=>
array(4) {
["name"]=>
string(1) "1"
["price"]=>
string(3) "899"
["currency"]=>
string(3) "EUR"
["quantity"]=>
int(1)
}
}
}
}
}
Il manque donc 1 articles dans l'itemListe !
Je ne vois donc pas comment réctifier se souci !! :/
Si jamais c'est déjà arriver à quelqu'un...
Merci pour votre aide ! ^^