问题描述
我使用的是 C# .net Core MVC 并且我使用的是 Paypal V2 https://github.com/paypal/Checkout-NET-SDK
在用户登录并通过 paypal 批准后(在最终提交订单之前),我无法更新订单的税务信息。
我使用以下命令创建了订单
var request = new OrdersCreateRequest();
request.Prefer("return=representation");
request.RequestBody(order);
response = await client().Execute(request);
var statusCode = response.StatusCode;
Order result = response.Result<Order>();
然后控制转到贝宝并要求用户登录贝宝。用户登录并单击 Paypal 上的“继续”,控制权返回到我的应用程序。
此时,我需要按顺序更新税务信息,但不知道该怎么做。我正在查看以下帮助链接。
https://developer.paypal.com/docs/checkout/integration-features/update-order-details/
https://developer.paypal.com/docs/api/orders/v2#orders_patch
所以我查看了补丁订单来更新税。我在 c# 中使用以下补丁代码尝试了“OrdersPatchRequest”
new Patch<Object>
{
Op= "replace",Path= "/purchase_units/@reference_id=='default'/amount",Value ="{\"breakdown\":{\"item_total\":{\"currency_code\":\"USD\",\"value\":\"1\"},\"shipping\":{\"currency_code\":\"USD\",\"value\":\"3\"},\"tax_total\":{\"currency_code\":\"USD\",\"value\":\"2\"}},\"currency_code\":\"USD\",\"value\":\"6\"}"
}
Patch 值的格式如下
{
"breakdown":
{
"item_total":{"currency_code":"USD","value":"1"},"shipping":{"currency_code":"USD","value":"3"},"tax_total":{"currency_code":"USD","value":"2"}
},"currency_code":"USD","value":"6"
}
但由于以下错误而失败
{"name":"INVALID_REQUEST","details":[{"field":"/purchase_units/@reference_id=='default'/amount","value":"{\"breakdown\":{\"item_total\":{\"currency_code\":\"USD\",\"value\":\"6\"}","location":"body","issue":"INVALID_ParaMETER_VALUE","description":"The value of a field is invalid."}],"message":"Request is not well-formed,syntactically incorrect,or violates schema.","debug_id":"1879d34e23fc4","links":[{"href":"https://developer.paypal.com/docs/apI/Orders/v2/#error-INVALID_ParaMETER_VALUE","rel":"information_link","method":"GET"}]}
知道为什么它失败了吗?请帮忙。
(* 上面更新了补丁值和错误消息)
解决方法
您的补丁值:
"{\"breakdown\":{\"item_total\":{\"currency_code\":\"USD\",\"value\":\"1\"},\"tax_total\":\"USD\",\"value\":\"2\"},\"shipping\":{\"currency_code\":\"USD\",\"value\":\"3\"}},\"currency_code\":\"USD\",\"value\":\"6\"}"
更清晰地呈现为:
{
"breakdown": {
"item_total": {
"currency_code": "USD","value": "1"
},"tax_total": "USD","value": "2"
},"shipping": {
"currency_code": "USD","value": "3"
}
},"currency_code": "USD","value": "6"
}
如您所见,这是无效的,因此出现错误