【问题标题】:Why does adding items make Paypal Checkout return an error?为什么添加项目会使 Paypal Checkout 返回错误?
【发布时间】:2020-04-10 13:08:54
【问题描述】:

我正在尝试使用 Javascript SDK 创建 PayPal 订单。如果 PayPal 返回非描述性 400 错误,我将无法添加项目。

这个标记工作正常:

return actions.order.create({
  purchase_units: [{
    description: "Stuff",
    amount: {
      value: '57.49',
      currency_code: "CAD",
    },
  }],
  application_context: {
    brand_name: "MyBusiness",
    shipping_preference: 'NO_SHIPPING'
  }
});

这个标记,我在其中添加了金额明细,而项目没有:

return actions.order.create({
  purchase_units: [{
    description: "Stuff",
    amount: {
      value: '57.49',
      currency_code: "CAD",
      breakdown: {
        item_total: '57.49',
      }
    },
    items: [{
      unit_amount: '57.49',
      quantity: '1',
      name: "item 1",
    }],
  }],
  application_context: {
    brand_name: "MyBusiness",
    shipping_preference: 'NO_SHIPPING'
  }
});

我正在关注此文档:

https://developer.paypal.com/docs/api/orders/v2/#definition-purchase_unit_request

https://developer.paypal.com/docs/api/orders/v2/#definition-item

我猜我添加细分的方式不起作用。但规范暗示它是数量 -> 细分。

【问题讨论】:

    标签: paypal paypal-rest-sdk


    【解决方案1】:

    完整的工作示例...保存到 HTML 文件,或者只是复制 purchase_units 数组

    <!DOCTYPE html>
    <!-- example from https://developer.paypal.com/demo/checkout/#/pattern/client -->
    
    <head>
        <!-- Add meta tags for mobile and IE -->
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    </head>
    
    <body>
        <!-- Set up a container element for the button -->
        <div id="paypal-button-container"></div>
    
        <!-- Include the PayPal JavaScript SDK -->
        <script src="https://www.paypal.com/sdk/js?client-id=sb&currency=CAD"></script>
    
        <script>
            // Render the PayPal button into #paypal-button-container
            paypal.Buttons({
    
                // Set up the transaction
                createOrder: function(data, actions) {
                    return actions.order.create({
    
    
    // based on example array from https://developer.paypal.com/docs/checkout/reference/server-integration/set-up-transaction/
      "purchase_units": [{
          "description": "Stuff",
          "amount": {
            "value": "57.49",
            "currency_code": "CAD",
            "breakdown": {
              "item_total": {
                "currency_code": "CAD",
                "value": "57.49"
              },
            }
          },
          "items": [
            {
              "unit_amount": {
                "currency_code": "CAD",
                "value": "57.49"
              },
              "quantity": "1",
              "name": "item 1",
            },
          ],
        }
      ]
    
      ,
      application_context: {
        brand_name: "MyBusiness",
        shipping_preference: 'NO_SHIPPING'
      }
    
    
                    }/*end of parameters to actions.order.create*/);
                },
    
                // Finalize the transaction
                onApprove: function(data, actions) {
                    return actions.order.capture().then(function(details) {
                        // Show a success message to the buyer
                        alert('Transaction completed by ' + details.payer.name.given_name + '!');
                    });
                }
    
    
            }).render('#paypal-button-container');
        </script>
    </body>

    【讨论】:

      猜你喜欢
      • 2016-05-06
      • 2017-01-08
      • 2021-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-14
      • 2018-10-28
      • 2021-01-08
      相关资源
      最近更新 更多