php - sitio - Paypal pro Pago con tarjeta almacenada Detalles de la tarjeta
php pagos online (1)
Sí definitivamente puede hacer los pagos usando esas tarjetas almacenadas usando la identificación de tarjeta de crédito recibida anteriormente.
He incluido la solicitud de curl que puede usar:
Solicitud
curl -v POST "https://api.sandbox.paypal.com/v1/payments/payment" -H "Content-Type:application/json" -H "Authorization: Bearer A0430YIJHh.TrJ7DuXoVVSzzRD9BiNhc7.JUdtWFV9bm6PM" -d "{/"intent/":/"sale/",/"payer/":{/"payment_method/":/"credit_card/",/"funding_instruments/":[{/"credit_card_token/":{/"credit_card_id/":/"CARD-7F19874*H7676925VKQ55ALQ/"}}]},/"transactions/":[{/"amount/":{/"total/":/"7.47/",/"currency/":/"USD/"},/"description/":/"This is the payment transaction description./"}]}"
Respuesta
{"id":"PAY-17C52753U3213490GKQ56FJQ","create_time":"2014-10-13T14:33:10Z","updat
e_time":"2014-10-13T14:33:28Z","state":"approved","intent":"sale","payer":{"paym
ent_method":"credit_card","funding_instruments":[{"credit_card_token":{"credit_c
ard_id":"CARD-7F116246H7676925VKQ55ALQ","last4":"0331","type":"visa","expire_mon
th":"11","expire_year":"2018"}}]},"transactions":[{"amount":{"total":"7.47","cur
rency":"USD","details":{"subtotal":"7.47"}},"description":"This is the payment t
ransaction description.","related_resources":[{"sale":{"id":"0TD97130MF446714A",
"create_time":"2014-10-13T14:33:10Z","update_time":"2014-10-13T14:33:28Z","amoun
t":{"total":"7.47","currency":"USD"},"state":"completed","parent_payment":"PAY-1
7C52753U3213490GKQ56FJQ","links":[{"href":"https://api.sandbox.paypal.com/v1/pay
ments/sale/0TD97130MF446714A","rel":"self","method":"GET"},{"href":"https://api.
sandbox.paypal.com/v1/payments/sale/0TD97130MF446714A/refund","rel":"refund","me
thod":"POST"},{"href":"https://api.sandbox.paypal.com/v1/payments/payment/PAY-17
C52753U3213490GKQ56FJQ","rel":"parent_payment","method":"GET"}]}}]}],"links":[{"
href":"https://api.sandbox.paypal.com/v1/payments/payment/PAY-17C52753U3213490GK
Q56FJQ","rel":"self","method":"GET"}]}
Solicitud en formato JSON:
{
"intent": "sale",
"payer": {
"payment_method": "credit_card",
"funding_instruments": [
{
"credit_card_token": {
"credit_card_id": "CARD-7F19874*H7676925VKQ55ALQ"
}
}
]
},
"transactions": [
{
"amount": {
"total": "7.47",
"currency": "USD"
},
"description": "This is the payment transaction description."
}
]
}
Respuesta:
{
"id": "PAY-8U155502YW812893MKQ55D7Q",
"create_time": "2014-10-13T13:22:06Z",
"update_time": "2014-10-13T13:22:27Z",
"state": "approved",
"intent": "sale",
"payer": {
"payment_method": "credit_card",
"funding_instruments": [
{
"credit_card_token": {
"credit_card_id": "CARD-7F19874*H7676925VKQ55ALQ",
"last4": "0331",
"type": "visa",
"expire_month": "11",
"expire_year": "2018"
}
}
]
},
"transactions": [
{
"amount": {
"total": "7.47",
"currency": "USD",
"details": {
"subtotal": "7.47"
}
},
"description": "This is the payment transaction description.",
"related_resources": [
{
"sale": {
"id": "5U920323FW4849716",
"create_time": "2014-10-13T13:22:06Z",
"update_time": "2014-10-13T13:22:27Z",
"amount": {
"total": "7.47",
"currency": "USD"
},
"state": "completed",
"parent_payment": "PAY-8U155502YW812893MKQ55D7Q",
"links": [
{
"href": "https://api.sandbox.paypal.com/v1/payments/sale/5U920323FW4849716",
"rel": "self",
"method": "GET"
},
{
"href": "https://api.sandbox.paypal.com/v1/payments/sale/5U920323FW4849716/refund",
"rel": "refund",
"method": "POST"
},
{
"href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-8U155502YW812893MKQ55D7Q",
"rel": "parent_payment",
"method": "GET"
}
]
}
}
]
}
],
"links": [
{
"href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-8U155502YW812893MKQ55D7Q",
"rel": "self",
"method": "GET"
}
]
}
Puedes usar el siguiente código php:
<?php
//open connection
$ch = curl_init();
$client="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$secret="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
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.":".$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);
}
// Now doing txn after getting the token
$ch = curl_init();
$data = ''{
"intent": "sale",
"payer": {
"payment_method": "credit_card",
"funding_instruments": [
{
"credit_card_token": {
"credit_card_id": "CARD-76K83451273207050KQ6MXDQ"
}
}
]
},
"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_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json","Authorization: Bearer ".$json->access_token));
$result = curl_exec($ch);
if(empty($result))die("Error: No response.");
else
{
$json = json_decode($result);
print_r($json);
}
?>
Estamos almacenando los detalles de la tarjeta de crédito en el servidor de PayPal.
Y la respuesta es así
stdClass Object ([id] => CARD-14C32505AV6044027KQ537UQ [estado] => ok [payer_id] => GI6WdoVY6zOq1413201872 [type] => visa [number] => xxxxxxxxxxxx1111 [expire_month] => 11 [expire_year] => 2018 [first_name] => Anu [last_name] => Jose [valid_until] => 2017-10-12T00: 00: 00Z [create_time] => 2014-10-13T12: 04: 34Z [update_time] => 2014-10-13T12: 04: 34Z [enlaces] => Matriz ([0] => stdClass Object ([href] => https://api.sandbox.paypal.com/v1/vault/credit-card/CARD-14C32505AV6044027KQ537UQ [rel] => self [method] => GET) [1] => stdClass Object ([href] => https://api.sandbox.paypal.com/v1/vault/credit-card/CARD-14C32505AV6044027KQ537UQ [rel] => delete [ method] => DELETE) [2] => stdClass Object ([href] => https://api.sandbox.paypal.com/v1/vault/credit-card/CARD-14C32505AV6044027KQ537UQ [rel] => patch [method ] => PATCH)))
¿Es posible hacer una transacción usando esta identificación de tarjeta de crédito? Alguna ayuda ?