我想在“创建订单”POST /v2/checkout/orders
调用期间设置运送首选项。
如果我使用已弃用的 using 方法application_context
,那么它可以正常工作:
{
"intent": "CAPTURE",
"purchase_units": [
{
"amount": {
"currency_code": "GBP",
"value": "110.62"
}
}
],
"application_context": {
"shipping_preference": "NO_SHIPPING"
}
}
但是,如果我使用推荐的 using 方法,experience_context
那么我不会返回CREATED
but的状态PAYER_ACTION_REQUIRED
。
{
"intent": "CAPTURE",
"purchase_units": [
{
"amount": {
"currency_code": "GBP",
"value": "110.62"
}
}
],
"payment_source": {
"paypal": {
"experience_context": {
"shipping_preference": "NO_SHIPPING"
}
}
}
}
这是为什么?
注意:一年前 PayPal 社区也提出了同样的问题:
但问题始终没有得到解决。
没有问题,您只是描述更新后的 API 的行为。
使用已弃用的参数时,CREATED 始终是旧响应。
PAYER_ACTION_REQUIRED 是新的状态响应,如果确实需要此类操作(取决于使用的新参数,例如当使用不同的 payment_source 对象时,可能不需要)。
基本上不用担心这一点,订单已像以前一样创建,现在会明确告知您是否以及何时需要付款人采取行动。继续:
需要明确的是,没有改变的是您下一步需要做的事情。付款人始终需要采取行动。要么使用标准集成 JS SDK 按钮来获得上下文批准,要么使用旧的集成模式(不推荐)将买家完全重定向到远离您的网站,然后让他们返回。