PHP Paypal REST 创建付款错误的 JSON 响应
Posted
技术标签:
【中文标题】PHP Paypal REST 创建付款错误的 JSON 响应【英文标题】:PHP Paypal REST create payment malfromed JSON response 【发布时间】:2018-01-25 18:01:50 【问题描述】:对此感到抱歉(最后的手段,没有朝自己的脑袋开枪;-);这显然是我的错,但我花了几天时间在这里和其他地方搜索,阅读文档,尝试各种事情等。但它仍然无法正常工作。
有人请指点我这里出了什么问题:
<?php
$data = array(
"intent" => "sale",
"redirect_urls" => array(
"return_url" => "http://.../ok.html",
"cancel_url" => "http://.../cancel.html"
),
"payer" => array(
"payment_method" => "paypal"
),
"transactions" => array(
"amount" => array(
"total" => "1.23",
"currency" => "GBP"
)
)
);
$ch = curl_init("https://api.sandbox.paypal.com/v1/payments/payment");
curl_setopt($ch, CURLOPT_VERBOSE, true);
$logfile = fopen("curl_log.txt", "w");
curl_setopt($ch, CURLOPT_STDERR, $logfile);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Authorization: Bearer <long token returned from REST call',
));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$res = curl_exec($ch);
curl_close($ch);
fclose($logfile);
?>
错误:
"name":"MALFORMED_REQUEST","message":"Incoming JSON request does not map to API request","information_link":"developer.paypal.com/webapps/developer/docs/api/…;
【问题讨论】:
错误信息或卷曲结果是什么? 你想达到什么目的?有什么错误吗?请解释您的问题。 使用curl error function 获取实际错误详情 对不起;它是:"name":"MALFORMED_REQUEST","message":"传入的 JSON 请求未映射到 API 请求","information_link":"developer.paypal.com/webapps/developer/docs/api/…" 我只是(我认为)试图“创建付款”;获得令牌是轻而易举的事。下一步是创建付款。 【参考方案1】:更新您的 $data 数组,例如,
$data = array(
"intent" => "sale",
"payer" => array(
"payment_method" => "paypal"
),
"transactions" =>array(
array(
"amount" => array(
"total" => "1.23",
"currency" => "GBP")
)
),
"redirect_urls" => array(
"return_url" => "http://.../ok.html",
"cancel_url" => "http://.../cancel.html"
)
);
【讨论】:
不是复制粘贴,需要将交易数组再包装一个数组 如果它有效,那么就为答案投票,所以它对其他人也有帮助 它确实有效。恐怕我的赞成票并不重要,但我已尽我所能。 “交易”的 [array][array][array][array] 深度似乎是一个常见问题,在这里和其他地方有几个不正确的答案。再次感谢。以上是关于PHP Paypal REST 创建付款错误的 JSON 响应的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PayPal REST API 和 PayPal PHP SDK 保存 PayPal 帐户以备将来付款