使用 Paypal rest API 未显示付款详细信息

Posted

技术标签:

【中文标题】使用 Paypal rest API 未显示付款详细信息【英文标题】:Payment Details not showing up using Paypal rest API 【发布时间】:2014-07-03 14:25:19 【问题描述】:

请看下面的截图

我正在使用 Paypal REST API。现在,您会看到没有金额出现。但我已按照 Paypal 文档中的要求提供了所有详细信息。你能指导我如何让它工作吗

现在,你不认为这会在 paypal 上提出一个严肃的问题吗?例如,网站所有者可以在网站上显示不同的定价并在贝宝上扣除不同的金额,因为支付信息在贝宝的网站上根本不可见。

【问题讨论】:

您不能正确发送包含所有详细信息的请求。需要查看您发送的请求样本以进行验证。 var samplePaymentObject= "intent":"sale", "redirect_urls": "return_url":"localhost:3000", "cancel_url":"localhost:3000" , "payer": "payment_method":"paypal" , "transactions":[ "amount": "total":balance, "currency":"USD" , "description":"这是支付交易描述。" ] ; PAYPAL_API.payment.create(samplePaymentObject,,callback); 我认为上面的文字不可读。你可以在这里阅读代码pastebin.com/raw.php?i=50J5SSpm 【参考方案1】:

-RECURRING-付款

如果您费心阅读问题,您会看到。

唯一的解决方案是回到 Paypal 的老式 API,因为新的 RESTful Paypal API 在涉及定期付款时,此功能已被破坏。

如果您想解决这个问题,请随时与他们联系。

【讨论】:

【参考方案2】:

这就是我创建贝宝支付(服务器端)并使用 REST API 显示产品信息的方法。当然,这不会处理付款。 If you want to take a look at the entire process, check my gist.

注意:不要忘记添加 HTTP 包。

Meteor.methods(
  'createPaypalPayment': function(product) 
    var payment, res, token;
    token = Meteor.call('getPaypalToken');
    payment = 
      intent: 'sale',
      payer: 
        payment_method: 'paypal'
      ,
      redirect_urls: 
        return_url: 'http://localhost:3000/dashboard/payment/paypal/execute',
        cancel_url: 'http://localhost:3000/dashboard'
      ,
      transactions: [
        
          item_list: 
            'items': [
              
                'name': product.name,
                'price': product.price,
                'currency': 'USD',
                'quantity': 1
              
            ]
          ,
          amount: 
            total: product.price,
            currency: 'USD'
          ,
          description: product.description
        
      ]
    ;
    res = Meteor.http.post('https://api.sandbox.paypal.com/v1/payments/payment', 
      headers: 
        Authorization: 'Bearer ' + token.access_token,
        'Content-Type': 'application/json'
      ,
      data: payment
    );
    res.data['userId'] = this.userId;
    PaypalPayments.insert(res.data);
    return res.data;
  
);

【讨论】:

嘿朱利安 - 感谢您的回复。 item_list 似乎不起作用,因为每当我发送 item_list 时它都会引发错误。 抛出的错误是什么? (您应该会在响应 API 中看到一条错误消息) 如果要传递订单项,还需要在数量中添加明细对象 - 请参阅:developer.paypal.com/webapps/developer/docs/api/#details-object 这是一个示例:pastebin.com/SkH1sY5y 同样,另一种格式,它表示将发送到端点的 HTTP Payload 请记住,使用 localhost 返回和取消 URL 将不起作用。在这些将被触发时,它将是使用该值的 PayPal 的服务器。如果 PayPal 的服务器重定向到 localhost,它将重定向到自身,您很可能会在此处出现 404 错误。

以上是关于使用 Paypal rest API 未显示付款详细信息的主要内容,如果未能解决你的问题,请参考以下文章

Paypal API Payments Pro 交易未显示运输详细信息

PayPal REST API 未显示交易描述和应用名称

PayPal REST API 未执行付款。无法将付款对象的状态从“已创建”更改为“已批准”或“已完成”

Paypal Refund Sale REST API 返回:远程服务器返回错误:(404)未找到

Paypal Rest API 未触发 webhook

PayPal Rest API SDK:如何添加 SOLUTIONTYPE 选项(或等效项)