小程序已完成专用支付产品升级,提审时仍提示升级
结论
支付产品已经开通并完成升级,线上支付也能正常使用,但这不代表提审系统已经完成升级校验。出现这条提示,通常是因为平台还没有通过一笔符合要求的生产环境交易,确认当前小程序、商家账号与升级后的支付产品之间的关联。
进入小程序版本提审页面,找到专用支付产品的升级校验入口,上传符合条件的交易单号并提交。一般需要填写支付平台生成的交易号,而不是商家自行生成的订单号。
为什么支付成功后仍会提示升级
产品开通、线上支付和版本提审校验是三个相对独立的环节:
- 商家完成 JSAPI 支付、预授权支付或商家扣款产品的签约升级。
- 小程序在线上环境成功发起交易。
- 提审系统根据交易单号,核验交易是否来自当前小程序,以及是否使用了升级后的产品能力。
即使前两项已经完成,第三项也可能没有完成。常见原因有:
- 尚未在提审页面提交交易单号。
- 填写了商家订单号
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. 在提审页面上传并提交
进入当前小程序的版本提审页面,在专用支付产品升级提示区域找到交易校验入口,再按以下步骤操作:
- 选择或确认需要校验的支付产品。
- 填写生产环境交易对应的平台交易号。
- 检查交易所属的小程序和商家主体。
- 提交升级校验。
- 等待页面返回校验结果。
- 校验通过后,重新发起版本提审。
平台后台可能会调整入口名称,具体以提审页面当前显示的内容为准。
校验失败时如何排查
可以按以下顺序检查:
- 确认没有误把
out_trade_no填成trade_no。 - 查询订单,确认交易已经成功且没有关闭。
- 核对交易请求中的
app_id是否属于正在提审的小程序。 - 核对收款商家、签约主体和产品签约账号。
- 确认交易来自生产环境。
- 确认交易发生在产品升级之后。
- 确认实际使用的支付产品与页面待校验的产品一致。
- 等待状态同步后再提交,避免支付完成后立即反复操作。
如果这些信息都一致,但校验仍然无法通过,请保存交易号、商家订单号、支付时间、app_id、商家账号及校验页面截图,并提交给平台客服或技术支持,以便核查后台关联关系。公开提交工单、发帖或分享截图时,不要暴露完整密钥、用户身份信息及其他敏感数据。
备注:内容仅供参考。
