Bonjour,
Après de multiples recherche je viens vers vous car je n'arrive pas à resoudre mon problème. J'ai suivi le tutoriel de Grafikart sur PayPal CheckOut. Mon code :
$api_keys = [
'id' => 'ID',
'secret' => 'SECRET'
];
$apiContext = new \PayPal\Rest\ApiContext(
new \PayPal\Auth\OAuthTokenCredential(
$api_keys['id'],
$api_keys['secret']
)
);
$list = new \PayPal\Api\ItemList();
$item = (new \PayPal\Api\Item())
->setName('Tarif '.$tarif)
->setPrice($price)
->setCurrency('EUR')
->setQuantity(1)
->setDescription('...');
$list->addItem($item);
$details = (new \PayPal\Api\Details())
->setSubtotal($price)
->setTax(0);
$amount = (new \PayPal\Api\Amount())
->setTotal($price)
->setCurrency("EUR")
->setDetails($details);
$transaction = (new \PayPal\Api\Transaction())
->setItemList($list)
->setDescription('Achat sur code39.fr')
->setAmount($amount);
$payment = new \PayPal\Api\Payment();
$payment->setTransactions($transaction);
$payment->setIntent('sale');
$redirectUrls = (new \PayPal\Api\RedirectUrls())
->setReturnUrl('http://localhost/pay.php')
->setCancelUrl('http://localhost/calendrier-des-villes/');
$payment->setRedirectUrls($redirectUrls);
$payment->setPayer((new \PayPal\Api\Payer())->setPaymentMethod('paypal'));
try {
$payment->create($apiContext);
echo $payment->getApprovalLink();
} catch(\PayPal\Exception\PayPalConnectionException $e) {
echo "<pre>";
var_dump($e->getMessage());
}
Mais au lancement du code du code j'obtiens une erreur (Les variables $tarifs et $price sont définient plus tôt) :
string(93) "Got Http response code 400 when accessing https://api.sandbox.paypal.com/v1/payments/payment."
La transaction ressemble à ça :
{
"transactions":{
"item_list":{
"items":[
{
"name":"Tarif 4 joueurs",
"price":"56",
"currency":"EUR",
"quantity":1
}
]
},
"description":"Achat sur code39.fr",
"amount":{
"total":"56",
"currency":"EUR",
"details":{
"subtotal":"56",
"tax":"0"
}
}
},
"intent":"sale",
"redirect_urls":{
"return_url":"http://localhost/pay.php",
"cancel_url":"http://localhost/calendrier-des-villes/"
},
"payer":{
"payment_method":"paypal"
}
}
Merci de votre aide :)