Paypal Express Checkout - 授权未在仪表板中显示

4
我正在使用快速结账API V4创建并发送以下付款:
return paypal.rest.payment.create(env, client, {
    intent: 'authorize',
    payer: {
        "payment_method": "paypal"
    },
    transactions: [
        {
            amount: { total: '0.01', currency: 'GBP' }
        }
    ]
});

我返回的对象如下:

enter image description here

这似乎都是正确的。问题是,沙盒仪表板中没有这个付款认证的迹象。

我甚至尝试使用活动账号,并发送一分钱,但无论在买方账户还是卖方账户中均找不到交易记录。

如果这笔支付未被成功创建,为什么我看到的对象状态是"created"

提示:如果我使用intent: 'sale'发送付款,则可以成功处理并在仪表板中显示。

1个回答

2
我有同样的问题。PayPal的API和文档是非常糟糕的......
逻辑如下:
1. 您必须进行付款执行。
我尝试了不同的方法,但最简单的方法最终变成了这样:
在Paypal网站的示例中,显示了完整的代码和onAuthorize: function(data, actions),因此此函数应如下所示:

 onAuthorize: function(data, actions) {
                  return actions.payment.get().then(function(payment) {
    
    
                      console.log(payment);
    
                      var b = payment.payer;
                      var bb = b.payer_info;
    
                    //  alert (bb.payer_id);
    
                   var newUrl = "http://YOURDOMAIN.COM/execute.php?paymentId="+payment.id+"&token=EC-"+payment.cart+"&PayerID="+bb.payer_id;
    
                      console.log(newUrl);
    // go to the execute.php and send to paypal payment confirmation
                     window.location.replace(newUrl);
    
    
                  });
    
            }

一旦您使用交易获取了对象,仍需确认该对象!
2. 前往https://github.com/paypal/PayPal-PHP-SDK/wiki/Installation下载PHP SDK,它需要文件execute.php以轻松确认付款并在PayPal管理面板中显示。我直接从链接下载了SDK,没有使用Composer。
3. 接下来,在新创建的文件execute.php中直接连接SDK,无需使用Composer。
// 使用以下内容进行直接下载安装
require __DIR__  . '/PayPal-PHP-SDK/autoload.php';
  1. 然后复制执行文件 execute.php 的内容,并替换 PayPal 客户端 ID 和客户端密码。完整的 execute.php 代码请查看此处http://pastebin.com/K750qcxE。 我无法将所有代码粘贴在这里,因为代码引用实现得很差,而且 PayPal API 也是如此 :)

p.s. 在我发送的脚本中,我设置了返回 URL,但我不知道为什么 PayPal 没有将我重定向到该 URL,所以当您获取到交易对象时,我使用 JavaScript 进行重定向。

对不起我的英语。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接