Bonjour,
Voila je rencontre un petit problème avec mon code.
Je souhaite recuperer les getSku() mais le probleme c'est que quand j'ai deux produits dans le panier je recupere que 1 getSku() et pas le deuxième !
foreach ($payment->getTransactions() as $transaction) {
foreach ($transaction->getItemList()->getItems() as $item) {
//
var_dump($item->getSku());
exit();
}
}
voila ce que cela me renvoi string(2) "16"
hum ... tu fais la même erreur du coup.
Tu écrases ta variable à chaque boucle, donc fatalement, ça ne marchera pas mieux
$sku = []; // init ta variable
foreach ($payment->getTransactions() as $transaction) {
foreach ($transaction->getItemList()->getItems() as $item) {
$sku[] = $item->getSku(); // ajout chaque item à ton tableau
}
}
var_dump($sku);
En faisant ça, ça dit quoi ?
Bonsoir.
C'est la sortie du var_dump
qui est comme ça, il te suffit par exemple de faire une boucle sur la variable $sku
, pour récupérer chaque valeur individuellement.
Pour être sûr, ton "exit" tu l'avais bien mis après ton foreach (car là, fatalement, ça s'arrête au premier item).
Sinon, précise le SDK que tu utilises.
Salut, j'ai retirer le exit() j'utilise le SDK REST APIs
https://packagist.org/packages/paypal/rest-api-sdk-php
Voici le code de la page
<?php
//
require 'vendor/autoload.php';
// ---
$ids = require 'paypal.php';
$apiContext = new \PayPal\Rest\ApiContext(
new \PayPal\Auth\OAuthTokenCredential(
$ids['id'],
$ids['secret']
)
);
if(isset($_GET['paymentId']) AND isset($_GET['token']) AND isset($_GET['PayerID'])) {
$payment = \PayPal\Api\Payment::get($_GET['paymentId'], $apiContext);
$execution = (new \PayPal\Api\PaymentExecution())
->setPayerId($_GET['PayerID'])
->setTransactions($payment->getTransactions());
try {
$payment->execute($execution, $apiContext);
$id = $payment->getId();
$MethodPayment = $payment->getPayer()->getPaymentMethod();
foreach ($payment->getTransactions() as $transaction) {
foreach ($transaction->getItemList()->getItems() as $item) {
$sku = $item->getSku();
}
}
var_dump($sku);
} catch (\PayPal\Exception\PayPalConnectionException $e) {
var_dump(json_decode($e->getDate()));
}
}
Ca fonctionne ça me retournearray(2) { [0]=> string(2) "15" [1]=> string(2) "16" }
c'est ce que je voulais c'est parfait merci beaucoup pour ton aide :)
y a-t-il un moyen de récupérer selement le string(2) "15" string(2) "16"
au lieu de array(2) { [0]=> string(2) "15" [1]=> string(2) "16" }
?