为什么添加项目会使Paypal Checkout返回错误? [英] Why does adding items make Paypal Checkout return an error?

查看:100
本文介绍了为什么添加项目会使Paypal Checkout返回错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用JavaScript SDK创建PayPal订单.如果PayPal返回非说明性400错误,我将无法添加商品.

I am trying to create a PayPal order using the Javascript SDK. I am unable to add items without PayPal returning a non-descriptive 400 error.

此标记可以正常工作:

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

我在其中添加金额明细和项目的标记不存在:

This markup, where I add the amount breakdown and items doesn't:

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

我猜想我添加细分的方式行不通.但是规范暗示它是金额->细分.

I'm guessing the way I added the breakdown doesn't work. But the spec implies that it is amount -> breakdown.

推荐答案

完整的示例...保存到HTML文件,或仅复制purchase_units数组

Full working example... save to an HTML file, or just copy the purchase_units array

<!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>

这篇关于为什么添加项目会使Paypal Checkout返回错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆