【问题标题】:Javascript database troubleJavascript数据库问题
【发布时间】:2021-05-06 16:11:44
【问题描述】:

所以我已经成功地在我的页面上实施了 paypal,但我需要知道如何检查付款是否被批准(我已经批准),然后在我的数据库中更改他们的付款状态。

  • payed = 0 : 用户没有购买服务

  • payed = 1 : 用户已购买服务

             <div id="smart-button-container">
             <div style="text-align: center;">
                 <div id="paypal-button-container"></div>
             </div>
         </div>
    
         <script src="https://www.paypal.com/sdk/js?client-id=myid&currency=EUR" data-sdk-integration-source="button-factory"></script>
    
         <script>
             var payment_valid;
             function initPayPalButton() {
                 paypal.Buttons({
                     style: {
                         shape: 'rect',
                         color: 'black',
                         layout: 'vertical',
                         label: 'paypal',
    
                     },
    
                     createOrder: function(data, actions) {
                         return actions.order.create({
                             purchase_units: [{"description":"Premium","amount":{"currency_code":"EUR","value":0.1}}]
                         });
                     },
                     //Need to insert something here into my database
                     onApprove: function(data, actions) {
                         return actions.order.capture().then(function(details) {
                             alert('Transaction completed by ' + details.payer.name.given_name + '!' + ' data:' + data);
                         });
                     },
    
                     onError: function(err) {
                         console.log(err);
                     }
                 }).render('#paypal-button-container');
             }
    
             initPayPalButton();
         </script>
    

【问题讨论】:

    标签: javascript php sql database paypal


    【解决方案1】:

    要在您的数据库中记录付款状态,请通过 API 从您的服务器捕获以获取成功状态。 不要在客户端使用actions.order.capture(),因为如果这样做,无法保证能够在您的服务器上成功记录捕获。

    因此,对于正确的服务器集成,创建两条路由 - 一条用于“创建订单”,一条用于“捕获订单”,如 documented here. 您的路线应该返回/输出 JSON(并且只有 JSON)。捕获路由应在调用 PayPal 后检查是否成功,并在将 JSON 返回给客户端之前进行任何数据库写入。

    将您的两条路线与以下批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server

    【讨论】:

      猜你喜欢
      • 2016-02-05
      • 1970-01-01
      • 1970-01-01
      • 2023-01-29
      • 2013-05-06
      • 2020-12-17
      相关资源
      最近更新 更多