php paypal 服务器端 REST 集成失败
php paypal Server-side REST integration failure
(我无法 post code/errors 等,因为:'You need at least 10 reputation to post more than 2 links';所有内容都包含很多链接;只是花了几个小时在一个非常详细的 post).
我在这里(和其他地方)读过类似的 post,但它们没有帮助。
但是 PayPal 的文档有些混乱,缺少一些关键细节并且有些地方很神秘。显然是委员会写的。
简而言之,我有一个 PayPal 支付 ID:"id": "PAY-0J356327TH335450NK56Y2PQ"
,
PayPal 从我的创建付款脚本中说 return。我不完全确定应该如何 returned:简单地回显 "PAY-0J356327TH335450NK56Y2PQ";
或 return 一个 json 字符串。两个都试过了,没有解决任何问题。
然后是(来自客户端按钮):
onAuthorize: function(data) {
return paypal.request.post(EXECUTE_PAYMENT_URL, {
paymentID: data.paymentID,
payerID: data.payerID
}).then(function() {
// The payment is complete!
// You can now show a confirmation message to the customer
});
我读到它使用 2 个变量(paymentID 和 payerID)调用我的执行支付脚本,我需要在我的脚本中使用它们。
我试过显而易见的方法:
$paymentID = $_POST["paymentID"];
$payerID = $_POST["payerID"];
不太明显(因为我假设它正在发布数据,尽管有些文档在这一点上似乎有些混乱):
$paymentID = $_GET["paymentID"];
$payerID = $_GET["payerID"];
我最后的尝试:
$ret = file_get_contents("php://input");
$ar = json_decode($ret, TRUE);
$paymentID = $ar["paymentID"];
$payerID = $ar["payerID"];
None 其中有任何不同。
我从 PayPal 收到的错误是:
ppxo_no_token_passed_to_payment Object ...
ppxo_unhandled_error Object ...
Error: No value passed to payment
decorate ...
我显然有一个有效的访问令牌,否则我无法获得付款 ID。
目前陷入困境;任何 ideas/pointers 赞赏。
这真的应该很简单。
我有同样的错误信息。
对我来说,当 javascript 代码收到我的 CREATE_PAYMENT_URL ajax 请求的响应时发生。
我从服务器发回的响应无效 JSON 所以当需要执行 onAuthorize 时 data.paymentID 和 data.payerID 不可用。
我建议在 onAuthorize 中的 return 语句上方使用 console.log(data) 以确保数据 json 对象具有 paymentId 和 payerId。
如果不是,则可能是您之前的 CREATE_PAYMENT_URL 没有 return 支付 ID。
回复应该是json。例如,有效的创建付款响应:
{"id":"PAY-5T1130394T551090NLGRLACY"}
希望对您有所帮助。
(我无法 post code/errors 等,因为:'You need at least 10 reputation to post more than 2 links';所有内容都包含很多链接;只是花了几个小时在一个非常详细的 post).
我在这里(和其他地方)读过类似的 post,但它们没有帮助。
但是 PayPal 的文档有些混乱,缺少一些关键细节并且有些地方很神秘。显然是委员会写的。
简而言之,我有一个 PayPal 支付 ID:"id": "PAY-0J356327TH335450NK56Y2PQ"
,
PayPal 从我的创建付款脚本中说 return。我不完全确定应该如何 returned:简单地回显 "PAY-0J356327TH335450NK56Y2PQ";
或 return 一个 json 字符串。两个都试过了,没有解决任何问题。
然后是(来自客户端按钮):
onAuthorize: function(data) {
return paypal.request.post(EXECUTE_PAYMENT_URL, {
paymentID: data.paymentID,
payerID: data.payerID
}).then(function() {
// The payment is complete!
// You can now show a confirmation message to the customer
});
我读到它使用 2 个变量(paymentID 和 payerID)调用我的执行支付脚本,我需要在我的脚本中使用它们。
我试过显而易见的方法:
$paymentID = $_POST["paymentID"];
$payerID = $_POST["payerID"];
不太明显(因为我假设它正在发布数据,尽管有些文档在这一点上似乎有些混乱):
$paymentID = $_GET["paymentID"];
$payerID = $_GET["payerID"];
我最后的尝试:
$ret = file_get_contents("php://input");
$ar = json_decode($ret, TRUE);
$paymentID = $ar["paymentID"];
$payerID = $ar["payerID"];
None 其中有任何不同。
我从 PayPal 收到的错误是:
ppxo_no_token_passed_to_payment Object ...
ppxo_unhandled_error Object ...
Error: No value passed to payment
decorate ...
我显然有一个有效的访问令牌,否则我无法获得付款 ID。
目前陷入困境;任何 ideas/pointers 赞赏。
这真的应该很简单。
我有同样的错误信息。
对我来说,当 javascript 代码收到我的 CREATE_PAYMENT_URL ajax 请求的响应时发生。
我从服务器发回的响应无效 JSON 所以当需要执行 onAuthorize 时 data.paymentID 和 data.payerID 不可用。
我建议在 onAuthorize 中的 return 语句上方使用 console.log(data) 以确保数据 json 对象具有 paymentId 和 payerId。
如果不是,则可能是您之前的 CREATE_PAYMENT_URL 没有 return 支付 ID。
回复应该是json。例如,有效的创建付款响应:
{"id":"PAY-5T1130394T551090NLGRLACY"}
希望对您有所帮助。