Paypal 使用 php curl 获取带有支付键的交易详细信息
我在成功通过 android paypal 付款后收到回复.回复如下.
I get response after successful android paypal payment. The response was below.
{
"response": {
"state": "approved",
"id": "PAY-6PU626847B294842SKPEWXHY",
"create_time": "2014-07-18T18:46:55Z",
"intent": "sale"
},
"client": {
"platform": "Android",
"paypal_sdk_version": "2.11.0",
"product_name": "PayPal-Android-SDK",
"environment": "mock"
},
"response_type": "payment"
}
{
"short_description": "Pay List Payment",
"amount": "100",
"intent": "sale",
"currency_code": "USD"
}
然后我使用 PAY-6PU626847B294842SKPEWXHY
支付密钥,并使用 PHP curl GET 请求和以下代码获取交易详情.
then I use the PAY-6PU626847B294842SKPEWXHY
pay key and get the transaction details using PHP curl GET request with the following code.
$accessToken='<Access Token>';
$curl = curl_init("https://api.sandbox.paypal.com/v1/payments/payment/PAY-6PU626847B294842SKPEWXHY");
curl_setopt($curl, CURLOPT_POST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $accessToken,
'Accept: application/json',
'Content-Type: application/json'
));
$response = curl_exec($curl);
print_r($response);
exit;
点击此后,我得到以下响应,但未获取交易详细信息.
After hit this i get the following response not get the transaction detail.
{"name":"INVALID_RESOURCE_ID","message":"未找到请求的资源ID","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#INVALID_RESOURCE_ID","debug_id":"ddc1e3a55f10e"}
任何人有想法提前致谢.
anybody have idea thanks in advance.
推荐答案
以下对我有用.
1.制作 CURL POST 以获取访问令牌
$uri = 'https://api.sandbox.paypal.com/v1/oauth2/token';
//for live production use $uri = 'https://api.paypal.com/v1/oauth2/token';
$clientId = '<YOUR-CLIENT-ID-HERE>';
$secret = '<YOUR-SECRET-HERE>';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $uri);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSLVERSION , 6); //NEW ADDITION
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, $clientId.":".$secret);
curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials");
$result = curl_exec($ch);
$access_token = '';
if(empty($result))die("Error: No response.");
else
{
$json = json_decode($result);
$access_token = $json->access_token;
}
curl_close($ch);
2.制作 CURL POST 以获取交易详细信息,例如付款状态、金额、日期等.
$url = "https://api.sandbox.paypal.com/v2/payments/captures/<YOUR-PAYMENT-ID-HERE>";
$accessToken=$access_token;
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $accessToken,
'Accept: application/json',
'Content-Type: application/json'
));
$response = curl_exec($curl);
print_r($response);
exit;
3.MAKE CURL POST 以获取更多交易详细信息(这比第 2 步提供更详细的响应.因此您可以使用此而不是第 2 步
$url = "https://api.sandbox.paypal.com/v2/checkout/orders/<YOUR-order-ID-HERE>";
$accessToken=$access_token;
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $accessToken,
'Accept: application/json',
'Content-Type: application/json'
));
$response = curl_exec($curl);
print_r($response);
exit;
相关文章