PayPal onApprove 不调用 ajax 函数

Posted

技术标签:

【中文标题】PayPal onApprove 不调用 ajax 函数【英文标题】:PayPal onApprove not calling ajax function 【发布时间】:2021-01-30 00:56:47 【问题描述】:

我正在尝试在支付成功时向数据库添加一个布尔值。

  <script>
paypal.Buttons(
  createOrder: function(data, actions) 
    // This function sets up the details of the transaction, including the amount and line item details.
    return actions.order.create(
      purchase_units: [
        amount: 
          value: '0.01'
        
      ]
    );
  ,
  onApprove: function(data, actions) 
    // This function captures the funds from the transaction.
    return actions.order.capture().then(function(details) 
      // This function shows a transaction success message to your buyer.
      alert('Transaction completed by ' + details.payer.name.given_name);
      $.ajax(
        url: "includes/payment_db.php",
        success: function(data) 
          alert('Successfully called');
        ,
        error: function(jqxhr, status, exception) 
          alert('Exception:', exception);
        
      );
    );
  
).render('#paypal-button-container');
ajax 功能不工作。它不显示任何错误或成功消息。

【问题讨论】:

【参考方案1】:

不应使用这种类型的付款流程。不要在客户端捕获然后将信息记录在您的数据库中。

相反,请使用直接从服务器捕获的适当的服务器端集成,这样您就可以立即获得成功或失败的 API 响应,而无需依赖客户端来通知您发生的事情。

为此,请在您的服务器上创建两条路由,一条用于“设置事务”,一条用于“捕获事务”,记录在此:https://developer.paypal.com/docs/checkout/reference/server-integration/

为了客户的认可,将以下 javascript 与您创建的上述两条路由配对:https://developer.paypal.com/demo/checkout/#/pattern/server

【讨论】:

我不明白这是怎么回事。 como que é o quê? onde é que vou chamar a minha função do php no server integration 您需要创建两条新路线。例如includes/create_payment.phpincludes/capture_payment.php?id=xxxxxxxxxxxxxxxx——或者任何适合你的东西。

以上是关于PayPal onApprove 不调用 ajax 函数的主要内容,如果未能解决你的问题,请参考以下文章

收到 onApprove PayPal 后发送邮件

paypal 结账 onApprove 功能

Paypal 创建订阅 onApproval GET 超时

PayPal 智能按钮:是不是有任何方式 onApprove 在付款未完成的情况下运行?

通过 PayPal API 使用您自己的按钮

用户批准后如何取消Paypal订单? (API v2)