You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PayPal标准支付按钮添加多商品列表功能及支付报错求助

PayPal多商品订单创建报错解决方案

问题修正点

你代码触发报错的核心原因是预先填入了固定的payer节点信息,和PayPal支付流程的用户信息收集逻辑冲突,另外需要确认以下配置全部正确:

  • 移除createOrder参数里的整个payer节点:PayPal会自动在支付流程中收集付款人姓名、地址、联系方式等信息,手动填入的固定测试信息和后续登录的沙盒账号信息不匹配时,会直接触发校验报错。
  • 保证金额加总完全一致:你当前配置的商品总金额、运费、税费加总后和订单总金额匹配,后续修改商品价格时要注意item_total + shipping + tax_total + 其他费用项 = amount.value,数值不能有任何偏差,否则也会触发金额校验错误。
  • 替换正确的沙盒客户端ID:检查SDK引入链接里的MY_SANDBOX_CLIENT_ID,确认已经替换为你PayPal开发者后台生成的对应沙盒环境客户端ID,没有遗漏或填错字符。

修正后完整代码示例

<div id="paypal-button-container"></div>
<!-- 引入PayPal JavaScript SDK -->
<script src="https://www.paypal.com/sdk/js?client-id=替换为你的沙盒CLIENT_ID&enable-funding=venmo&currency=USD"></script>
<script>
// 渲染PayPal按钮到页面指定容器
paypal.Buttons({
    style: {
        color: 'blue',
        shape: 'rect',
        label: 'pay',
    },
    
    // 点击支付按钮时创建交易
    createOrder: function(data, actions) {
        return actions.order.create({
            "intent": "CAPTURE",
            "purchase_units": [
                {
                    "description": "My Purchases",
                    "amount": {
                        "currency_code": "USD",
                        "value": "12.00",
                        "breakdown": {
                            "item_total": {
                                "currency_code": "USD",
                                "value": "12.00"
                            },
                            "shipping": {
                                "currency_code": "USD",
                                "value": "0"
                            },
                            "tax_total": {
                                "currency_code": "USD",
                                "value": "0"
                            }
                        }
                    },
                    "items": [
                        {
                            "name": "Item 1",
                            "unit_amount": {
                                "currency_code": "USD",
                                "value": "6.00"
                            },
                            "quantity": "1"
                        },
                        {
                            "name": "Item 2",
                            "unit_amount": {
                                "currency_code": "USD",
                                "value": "6.00"
                            },
                            "quantity": "1"
                        }
                    ]
                }
            ]
        });
    },
    
    // 付款人完成授权后捕获交易
    onApprove: function(data, actions) {
        return actions.order.capture().then(function(orderData) {
            // 可在此处获取付款人信息、交易流水号等数据
            window.location.href = "Thanks.html";
        });
    },
    
    onCancel: function(data) {
        alert("支付已取消");
    },
    
    onError: function(err) {
        alert("错误信息: " + err);
    }
}).render('#paypal-button-container');
</script>
</div>

测试注意事项

  • 测试时请使用PayPal开发者后台生成的沙盒个人买家账号登录支付,不要使用真实账号操作。
  • 若需要获取付款人收货地址、联系方式等信息,可在onApprove回调的orderData对象中读取,无需在创建订单阶段预先传入。

内容的提问来源于stack exchange,提问作者Gene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:57:03