PayPal SDK请求报错:复制官方文档代码仍提示缺失必填参数
PayPal API请求参数错误:缺失必填字段的解决办法
你复制的是PayPal旧版API的示例代码,当前使用的新版API(v2)字段命名规则有变化,导致触发了必填字段缺失的错误,具体修改如下:
错误对应的字段修正
- amount字段错误:新版API要求
amount对象必须包含value字段(对应旧版的total),用来指定该订单单元的总金额。同时金额拆分项的总和必须和value数值一致。 - items字段错误:新版API不再使用
price字段,每个商品项需要用unit_amount对象定义单价,里面包含value(单价数值)和currency_code(币种)。
修改后的完整请求代码
purchase_units: [ { "amount": { "currency_code": "EUR", "value": "1.44", "breakdown": { "item_total": {"currency_code": "EUR", "value": "1.09"}, "shipping": {"currency_code": "EUR", "value": "0.02"}, "tax_total": {"currency_code": "EUR", "value": "0.33"} } }, "items": [ { "name": "NeoPhone", "sku": "sku03", "unit_amount": { "currency_code": "EUR", "value": "0.54" }, "quantity": "1" }, { "name": "Fitness Watch", "sku": "sku04", "unit_amount": { "currency_code": "EUR", "value": "0.55" }, "quantity": "1" } ], "shipping_address": { "line1": "2211 N First Street", "line2": "Building 17", "city": "San Jose", "country_code": "US", "postal_code": "95131", "admin_area_1": "CA", "phone": "(123) 456-7890" }, "shipping_method": "United Postal Service", "invoice_number": "invoice_number_2388" } ]
补充细节说明
新版API还有几个字段名的细微调整:
- 原
currency字段改名为currency_code - 原
details金额拆分字段改名为breakdown,子字段也对应调整(如subtotal→item_total) - 地址中的
state字段改名为admin_area_1
你之前复制的文档大概率是PayPal v1 API的内容,当前v2 API是主流规范,建议核对正在使用的SDK对应的官方API版本文档。
内容的提问来源于stack exchange,提问作者Nikita
相关产品推荐
相关产品推荐

