Hola a todos:
Me estoy estudiando la API actual de Paypal para poder realizar pagos desde PHP y me he atascado en un punto.
Por el momento consigo identificarme correctamente y obtener el access token con este código:
ch = curl_init();
$client_id = "xxxxxxxxxx";
$client_secret = "xxxxxxxxxx";
curl_setopt($ch, CURLOPT_URL, "https://api.sandbox.paypal.com/v1/oauth2/token");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, $client_id.":".$client_secret);
curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials");
$result = curl_exec($ch);
if(empty($result))die("Error: No response.");
else {
$json = json_decode($result);
// print_r($json->access_token);
$access_token = $json->access_token;
}
curl_close($ch);
Hasta aquí bien. Pero ahora quiero hacer un pago en modo sandbox, después de buscar he encontrado este código:
$data = '{
"intent":"sale",
"redirect_urls":{
"return_url":"http://<return URL here>",
"cancel_url":"http://<cancel URL here>"
},
"payer":{
"payment_method":"paypal"
},
"transactions":[
{
"amount":{
"total":"7.47",
"currency":"USD"
},
"description":"This is the payment transaction description."
}
]
}';
curl_setopt($ch, CURLOPT_URL, "https://api.sandbox.paypal.com/v1/payments/payment");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: text/xml",
"Authorization: Bearer EOjEJigcsRhdOgD7_76lPfrr45UfuI43zzNzTktUk1MK",
"Content-length: ".strlen($data))
);
Pero no acabo de comprender lo de Authorization, ¿qué es eso de Bearer y ese código? he probado poniendo el access_token, el código de la compra del vendedor, etc, pero ninguno funciona.
¿Alguién sabe qué hay que poner exactamente en Authorization?
Gracias