3

错误:“托管字段付款已在进行中。”

我已经从这个 PayPal 文档中复制了它,并在 SDK URL 中传递了一个正确的沙箱 clientID。

if (paypal.HostedFields.isEligible()) {
       paypal.HostedFields.render({
         createOrder: function () {return "order-ID";}, // replace order-ID with the order ID
         styles: {
           'input': {
             'font-size': '17px',
             'font-family': 'helvetica, tahoma, calibri, sans-serif',
             'color': '#3a3a3a'
           },
           ':focus': {
             'color': 'black'
           }
         },
         fields: {
           number: {
             selector: '#card-number',
             placeholder: 'card number'
           },
           cvv: {
             selector: '#cvv',
             placeholder: 'card security number'
           },
           expirationDate: {
             selector: '#expiration-date',
             placeholder: 'mm/yy'
           }
         }
       }).then(function (hf) {
         $('#my-sample-form').submit(function (event) {
           event.preventDefault();
           hf.submit({
             // Cardholder Name
             cardholderName: document.getElementById('card-holder-name').value,
             // Billing Address
             billingAddress: {
               streetAddress: document.getElementById('card-billing-address-street').value,      // address_line_1 - street
               extendedAddress: document.getElementById('card-billing-address-unit').value,       // address_line_2 - unit
               region: document.getElementById('card-billing-address-state').value,           // admin_area_1 - state
               locality: document.getElementById('card-billing-address-city').value,          // admin_area_2 - town / city
               postalCode: document.getElementById('card-billing-address-zip').value,           // postal_code - postal_code
               countryCodeAlpha2: document.getElementById('card-billing-address-country').value   // country_code - country
             }
           });
         });
       });
     }
4

1 回答 1

3

您需要将“order-ID”替换为为此结帐创建的实际 PayPal 订单 ID。

有几种方法可以获得一种。请参阅https://developer.paypal.com/docs/business/checkout/server-side-api-calls/#server-side-api-calls了解如何从您的服务器调用订单 API 以“创建订单”和“捕获订单”。您应该使用它们在您的服务器上创建两个仅返回 JSON 数据(无 HTML 或文本)的路由

至于如何从 JS UI 中获取和提交,请参阅 https://developer.paypal.com/demo/checkout/#/pattern/server以获取一些演示代码。


或者,您可以尝试进行仅 HTML/JS 的集成(无服务器),例如https://developer.paypal.com/demo/checkout/#/pattern/client

于 2020-06-05T21:15:57.530 回答