PAYATHON 2026

小程序已完成专用支付产品升级,提审时仍提示升级

支付阿杰

结论

支付产品已经开通并完成升级,线上支付也能正常使用,但这不代表提审系统已经完成升级校验。出现这条提示,通常是因为平台还没有通过一笔符合要求的生产环境交易,确认当前小程序、商家账号与升级后的支付产品之间的关联。

进入小程序版本提审页面,找到专用支付产品的升级校验入口,上传符合条件的交易单号并提交。一般需要填写支付平台生成的交易号,而不是商家自行生成的订单号。

为什么支付成功后仍会提示升级

产品开通、线上支付和版本提审校验是三个相对独立的环节:

  1. 商家完成 JSAPI 支付、预授权支付或商家扣款产品的签约升级。
  2. 小程序在线上环境成功发起交易。
  3. 提审系统根据交易单号,核验交易是否来自当前小程序,以及是否使用了升级后的产品能力。

即使前两项已经完成,第三项也可能没有完成。常见原因有:

  • 尚未在提审页面提交交易单号。
  • 填写了商家订单号 out_trade_no,但页面要求支付平台交易号 trade_no。
  • 交易使用的 app_id 与当前提审的小程序不一致。
  • 交易对应的商家账号、收款主体或代调用关系与当前小程序不匹配。
  • 上传的是沙箱或测试环境订单,而非生产环境的真实订单。
  • 订单未支付成功、已经关闭,或交易状态尚未同步。
  • 交易发生在产品升级前,无法用于证明升级后的支付链路已经生效。
  • 交易实际使用了其他支付入口,没有经过待校验的专用支付产品。
  • 产品刚完成升级或交易刚完成,状态尚未同步至提审系统。

所以,这类提示未必说明支付产品升级失败。更常见的情况是提审系统还没有取得可核验的生产交易凭证。

如何完成升级校验

1. 准备一笔符合要求的生产交易

使用待提审的小程序,在生产环境中完成一笔真实交易,并确认:

  • 发起交易的 app_id 对应当前小程序。
  • 交易使用了已升级的 JSAPI 支付、预授权支付或商家扣款产品。
  • 收款商家及签约主体与当前小程序的配置一致。
  • 订单最终状态符合提审页面的校验要求。
  • 交易发生在产品升级完成之后。

如果提审页面要求分别验证不同产品,应按照页面提示,为相应产品准备交易。不要默认一笔普通支付能够验证所有产品。

2. 获取支付平台交易号

创建订单时,商家通常会生成自己的订单号:

{
  "out_trade_no": "ORDER_202609150001"
}

支付成功后,支付平台会返回平台侧的交易号,例如:

{
  "out_trade_no": "ORDER_202609150001",
  "trade_no": "平台返回的交易号",
  "trade_status": "TRADE_SUCCESS"
}

这两个字段的含义不同:

  • out_trade_no:商家订单号,由商家系统生成。
  • trade_no:支付平台交易号,由支付平台生成。

如果提审页面要求填写”交易单号”或”支付平台交易号”,通常应提交 trade_no。如果页面明确要求商家订单号,则以字段说明为准。

3. 从支付结果或查询接口取得交易号

不要只依赖小程序前端保存交易号。更稳妥的方式是由服务端记录异步通知或交易查询接口返回的 trade_no。

以下代码只演示字段提取逻辑,具体响应结构以实际支付接口为准:

function getTradeNo(paymentResult) {
  if (!paymentResult || !paymentResult.trade_no) {
    throw new Error("支付结果中未取得 trade_no");
  }

  return paymentResult.trade_no;
}

const tradeNo = getTradeNo({
  out_trade_no: "ORDER_202609150001",
  trade_no: "平台返回的交易号",
  trade_status: "TRADE_SUCCESS"
});

console.log(tradeNo);

服务端还需要核对订单状态和交易归属信息:

function validateTrade(trade, expectedAppId, expectedMerchantId) {
  return (
    trade.trade_status === "TRADE_SUCCESS" &&
    trade.app_id === expectedAppId &&
    trade.merchant_id === expectedMerchantId &&
    Boolean(trade.trade_no)
  );
}

不同接口和接入模式使用的字段名称可能不同,示例中的 merchant_id 等字段不能直接当作固定的 API 参数。

4. 在提审页面上传并提交

进入当前小程序的版本提审页面,在专用支付产品升级提示区域找到交易校验入口,再按以下步骤操作:

  1. 选择或确认需要校验的支付产品。
  2. 填写生产环境交易对应的平台交易号。
  3. 检查交易所属的小程序和商家主体。
  4. 提交升级校验。
  5. 等待页面返回校验结果。
  6. 校验通过后,重新发起版本提审。

平台后台可能会调整入口名称,具体以提审页面当前显示的内容为准。

校验失败时如何排查

可以按以下顺序检查:

  1. 确认没有误把 out_trade_no 填成 trade_no。
  2. 查询订单,确认交易已经成功且没有关闭。
  3. 核对交易请求中的 app_id 是否属于正在提审的小程序。
  4. 核对收款商家、签约主体和产品签约账号。
  5. 确认交易来自生产环境。
  6. 确认交易发生在产品升级之后。
  7. 确认实际使用的支付产品与页面待校验的产品一致。
  8. 等待状态同步后再提交,避免支付完成后立即反复操作。

如果这些信息都一致,但校验仍然无法通过,请保存交易号、商家订单号、支付时间、app_id、商家账号及校验页面截图,并提交给平台客服或技术支持,以便核查后台关联关系。公开提交工单、发帖或分享截图时,不要暴露完整密钥、用户身份信息及其他敏感数据。

备注:内容仅供参考。