(我无法发布代码/错误等因为:'你需要至少10个声望才能发布2个以上的链接';而且一切都包含很多链接;只花了几个小时就完成了详细的帖子).
我在这里(以及其他地方)阅读过类似的帖子,但他们没有帮助.
我基本上遵循:https: //developer.paypal.com/docs/integration/direct/express-checkout/integration-jsv4/server-side-REST-integration/#set-up-your-client
但PayPal的文档有些混乱,缺乏一些关键的细节和神秘的地方.显然是由一个委员会撰写的.
概括地说我有一个支付宝付款ID: "id": "PAY-0J356327TH335450NK56Y2PQ",
PayPal说从我的创建支付脚本返回此信息.我不完全确定它应该如何返回:只需回显"PAY-0J356327TH335450NK56Y2PQ";或返回一个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
});
Run Code Online (Sandbox Code Playgroud)
我读到的是它调用我的执行支付脚本,其中包含2个变量(paymentID和payerID),我需要在我的脚本中使用它.
我试过了明显的事:
$paymentID = $_POST["paymentID"];
$payerID = $_POST["payerID"];
Run Code Online (Sandbox Code Playgroud)
不那么明显(因为我假设它的POST数据虽然有些文档在这一点上似乎有点混淆):
$paymentID = $_GET["paymentID"];
$payerID = $_GET["payerID"];
Run Code Online (Sandbox Code Playgroud)
我最后的尝试:
$ret = file_get_contents("php://input");
$ar = json_decode($ret, TRUE);
$paymentID = $ar["paymentID"];
$payerID = $ar["payerID"];
Run Code Online (Sandbox Code Playgroud)
这些都没有任何区别.
我从PayPal得到的错误是:
ppxo_no_token_passed_to_payment Object ...
ppxo_unhandled_error Object …Run Code Online (Sandbox Code Playgroud)