【发布时间】:2022-01-17 10:48:53
【问题描述】:
我尝试在网站上实施贝宝快速结帐流程。
用户必须在使用 paypal 登录并选择付款方式后才能调整订单。
为此,我使用贝宝创建订单,意图为“AUTHORIZE”,用户操作为“CONTINUE”。它被创建,用户被送回我们的网站,我可以使用创建的(订单)ID 获取订单和付款人信息。
但是,当付款人完成检查和调整一些最终参数并单击“立即购买”按钮时,我想发送此处引用的更新订单调用: https://developer.paypal.com/api/orders/v2/#orders_patch
我创建有效负载的方式与创建订单的方式完全相同,但这次的意图是“CAPTURE”和 user_action="PAY_NOW"。我将它修补到正确的路径,但我不断收到失败消息 "MALFORMED_REQUEST_JSON" 。
然而,JSON 本身是一个有效的 JSON,在创建过程中不会抛出任何错误。这是一个示例:
{
"intent": "CAPTURE",
"application_context": {
"landing_page": "NO_PREFERENCE",
"shipping_preference": "SET_PROVIDED_ADDRESS",
"user_action": "PAY_NOW"
},
"purchase_units": [{
"reference_id": "2289256",
"description": "Your order at site",
"custom_id": "order id 2289256",
"soft_descriptor": "site name",
"invoice_id": "2289256",
"amount": {
"currency_code": "EUR",
"value": 59.98,
"breakdown": {
"item_total": {
"currency_code": "EUR",
"value": 50.41
},
"shipping": {
"currency_code": "EUR",
"value": 0
},
"discount": {
"currency_code": "EUR",
"value": 0
},
"tax_total": {
"currency_code": "EUR",
"value": 9.57
}
}
},
"items": [{
"name": "Product 1",
"description": "Product 1 Description",
"sku": "1019879",
"unit_amount": {
"currency_code": "EUR",
"value": 16.8
},
"tax": {
"currency_code": "EUR",
"value": 3.19
},
"quantity": "1",
"category": "PHYSICAL_GOODS"
}, {
"name": "Product 2",
"description": "Product 2 Description",
"sku": "1024593",
"unit_amount": {
"currency_code": "EUR",
"value": 33.61
},
"tax": {
"currency_code": "EUR",
"value": 6.38
},
"quantity": "1",
"category": "PHYSICAL_GOODS"
}],
"shipping": {
"name": {
"full_name": "John Doe"
},
"address": {
"address_line_1": "Badensche Str. 24",
"address_line_2": "",
"admin_area_2": "Berlin(Berlin)",
"postal_code": "10715",
"country_code": "DE"
}
}
}]
}
这是贝宝的回复
{
name: "INVALID_REQUEST",
message: "Request is not well-formed, syntactically incorrect, or violates schema.",
debug_id: "c315ce9eb90b4",
details: [{
field: "/",
location: "body",
issue: "MALFORMED_REQUEST_JSON",
description: "The request JSON is not well formed.",
}],
links: [{
href: "https://developer.paypal.com/docs/api/orders/v2/#error-MALFORMED_REQUEST_JSON",
rel: "information_link",
encType: "application/json",
}],
}
我只是无法找出问题所在。我试图删除整个 application_context、purchase_units、intent 并查看这些参数中是否存在问题。没有改变。这个调用到底有什么问题?
【问题讨论】: