下单参数更新(updateSession)

在收银台会话创建之后、消费者发起支付之前,修改本次下单的金额与展示信息。 配套接口:All-In-One Checkout (V2)

端点

环境地址
生产POST https://api.futurepay.global/checkout/updateSession
沙箱POST https://api.futurepay-develop.com/checkout/updateSession

鉴权与签名方式和 newSession 完全一致。

语义

PATCH:只传需要修改的字段,未传的字段保持原值。空字符串同样视为"未传",

不支持把已有值清空——需要清空请重新下单。

请求参数

定位

sessionTokenreference 至少传一个;两个都传时必须指向同一笔订单,否则报错。

字段必填类型说明
sessionTokenCStringnewSession 返回的会话 token
referenceCString商户订单号。本身不可修改,仅用于定位

可更新字段

字段类型说明
amount.valueInteger支付金额,最小货币单位,必须大于 0。传 amount 时该字段必填
amount.currencyString支付币种,ISO 4217。不传则沿用原币种
productNameString订单标题,最长 100 字符
productDetailString订单描述
shopImgLinkString商品图片地址,最长 255 字符
returnUrlString支付完成跳转地址,最长 500 字符
webhookUrlString订单结果回调地址,最长 500 字符
sessionTimeLong会话有效期(毫秒),上限 604800000(7 天)。传入后从当前时刻重新计时
statementDescriptorStringApple Pay / Google Pay 账单上显示的商户名
billingAddressCollectionBoolean是否收集账单地址
maxRetriesInteger首次付款之后允许的重试次数,不能为负
isexchangeBoolean是否开启换汇
directReturnBoolean是否跳过成功页直接跳转 returnUrl
processingCurrencyString处理币种,ISO 4217
paymentMethod.typeString默认支付方式
paymentMethod.displayNameString支付方式展示名
paymentMethod.shopperEmailString消费者邮箱
paymentMethod.firstNameString消费者名
paymentMethod.lastNameString消费者姓
paymentMethod.telephoneNumberString消费者电话
paymentMethod.taxTypeString证件类型
paymentMethod.personalTaxIdString证件号
paymentMethod.threeDsModeStringENABLED / DISABLED / DYNAMIC
paymentMethod.captureMethodStringautomatic / manual

不可更新字段

以下字段传入即报错(而不是被静默忽略),需要变更请重新下单:

字段原因
reference幂等键与对账链路依赖它
origin与 Apple Pay 域名校验绑定
countryCode由收银台前端在支付时提交,服务端改了也不会生效
shopperReference与绑卡链路绑定
enableOneClick与绑卡链路绑定

允许更新的条件

以下任一条件不满足即拒绝更新:

  1. 会话仍在有效期内;
  2. 会话属于当前签名商户;
  3. 该商户订单号下所有订单都还停留在预支付状态——已经产生成功订单的会话不能再修改
  4. 消费者一次支付都还没发起过

响应

字段类型说明
codeString0 表示成功
msgString响应消息
successBoolean是否成功
data.sessionTokenString会话 token
data.referenceString商户订单号
data.checkOutUrlString收银台地址,与下单时下发的一致,原链接继续有效
data.amountObject更新后的金额
data.sessionTimeLong会话剩余有效期(毫秒)
data.updatedFieldsArray本次实际发生变更的字段名;传入值与原值相同的字段不会出现在这里
serverTimeLong服务器时间戳(毫秒)

示例

请求:

{
  "reference": "ORDER-20260910-001",
  "amount": {
    "currency": "USD",
    "value": 2500
  },
  "productName": "Annual plan (upgraded)"
}

响应:

{
  "code": "0",
  "msg": "succeeded",
  "success": true,
  "data": {
    "sessionToken": "0a1b2c3d-4e5f-6789-abcd-ef0123456789",
    "reference": "ORDER-20260910-001",
    "checkOutUrl": "https://checkout.futurepay.global/?token=0a1b2c3d-4e5f-6789-abcd-ef0123456789",
    "amount": { "currency": "USD", "value": 2500 },
    "sessionTime": 6840000,
    "updatedFields": ["amount.value", "productName"]
  },
  "serverTime": 1789012345678
}

错误码

场景错误码
sessionToken 与 reference 都未传缺少参数
传入不可更新字段、取值非法、两个定位字段互相矛盾参数值错误
订单不存在,或不属于当前商户订单号不存在
会话已过期session 过期
订单已不是预支付,或消费者已发起支付订单状态错误
同一会话上有并发的更新请求其他原因(提示稍后重试)

Did this page help you?