我已将PayPal Express-Checkout集成到我的应用程序中,并添加了授权和捕获流程。在流程(授权)开始时,我不知道稍后会捕获的最终价格,因此,我总是设置初始价格,并在金额详细信息中添加税款,例如本例:
...
"transactions": [
{
"amount":
{
"total": "5.50",
"currency": "USD",
"details":
{
"subtotal": "4.45",
"tax": "1.05"
}
}
}]
...
"item_list":
{
"items": [
{
"name": "foo",
"description": "bar",
"quantity": "1",
"price": "4.45",
"tax": "1.05",
"currency": "USD"
}]
}
...
到目前为止,一切都按预期进行。
但是稍后,当我尝试使用其详细信息(小计和税金)更新金额并进行呼叫捕获时,PayPal API会引发错误,告诉我此时无法更新详细信息(即使总计金额小于原来的总金额。
但是,如果我仅更改总额而没有详细信息(小计和税项),那么它将起作用。
到目前为止,我发现的唯一提示是在PayPal API docs中:
重要提示:如果您想更新任何更改原始授权金额的购买详细信息,贝宝(PayPal)要求您在购买时或在捕获时获得购买者的同意。
这是否意味着我必须创建一个完整的新授权并再次将客户重定向到PayPal页面以授权更新的付款?