繁体   English   中英

php paypal服务器端REST集成失败

[英]php paypal Server-side REST integration failure

(我无法发布代码/错误等因为:'你需要至少10个声望才能发布2个以上的链接';而且一切都包含很多链接;只花了几个小时就完全详细的帖子)。

我在这里(以及其他地方)阅读过类似的帖子,但他们没有帮助。

我基本上遵循: https//developer.paypal.com/docs/integration/direct/express-checkout/integration-jsv4/server-side-REST-integration/#set-up-your-client

但PayPal的文档有些混乱,缺乏一些关键的细节和神秘的地方。 显然是由一个委员会撰写的。

简而言之,我有一个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
            });

我读到的是它调用我的执行支付脚本,其中包含2个变量(paymentID和payerID),我需要在我的脚本中使用它。

我试过了明显的事:

$paymentID = $_POST["paymentID"];
$payerID = $_POST["payerID"];

不那么明显(因为我假设它的POST数据虽然有些文档在这一点上似乎有点混淆):

$paymentID = $_GET["paymentID"];
$payerID = $_GET["payerID"];

我最后的尝试:

$ret = file_get_contents("php://input");
$ar = json_decode($ret, TRUE);
$paymentID = $ar["paymentID"];
$payerID = $ar["payerID"];

这些都没有任何区别。

我从PayPal得到的错误是:

ppxo_no_token_passed_to_payment Object ...
ppxo_unhandled_error Object ...

Error: No value passed to payment
decorate ...

我显然有一个有效的访问令牌,否则我不会得到一个支付ID。

目前难倒; 任何想法/指针赞赏。

这真的应该很简单。

我有相同的错误消息。

对我来说,当javascript代码收到我的CREATE_PAYMENT_URL ajax请求的响应时,就会发生这种情况。

我从服务器发回的响应是无效的JSON,所以当执行onAuthorize data时,我发现data.paymentID和data.payerID不可用。

我建议在onAuthorize的return语句上方使用console.log(data),以确保数据json对象具有paymentId和payerId。

如果没有,则可能是您的previoius CREATE_PAYMENT_URL未返回付款ID。

答案应该是json。 例如,有效的创建付款响应:

{ “ID”: “PAY-5T1130394T551090NLGRLACY”}

希望有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM