悠悠楠杉
易支付对接小程序:先确认支付通道,再处理订单回调
易支付对接小程序,常见的卡点不是少填了一个接口地址,而是把“易支付能收款”和“小程序内能完成支付”当成同一件事。易支付通常指第三方支付接口或聚合支付服务,不同服务商支持的通道、接入方式并不一样。选接口前,先向服务商确认:当前商户账号是否开通了微信小程序支付,服务商交付的是小程序可用的支付参数,还是仅提供网页跳转、二维码收款链接。
点击付款后,只拿到了支付链接
小程序页面中的付款按钮若接到一个收银台网址,开发者很容易卡在下一步:链接能在浏览器打开,却无法直接作为小程序支付参数传给 wx.requestPayment。同样叫“微信支付”,H5 支付、扫码支付与小程序内支付的调用方式并不相同。不要为了让按钮有反应,就把网页收银台强行塞进小程序页面;先核对服务商文档中明确支持的场景,再确认小程序 AppID 与商户配置是否已按其要求完成关联。
小程序支付一般由后端创建业务订单并向支付服务发起请求,前端拿到对应参数后调用 wx.requestPayment。实际字段和签名生成方式以所用通道的文档为准。商户密钥、签名等敏感处理留在服务端,不放进小程序代码,也不让前端自行决定订单金额。
付款已经完成,订单仍显示待支付
假设一个小程序已通过易支付拿到可用参数,用户付款后页面返回“支付成功”,订单列表却仍停在“待支付”。此时继续改付款按钮,未必能解决问题:前端的支付完成提示只反映本次调用的返回情况,业务订单状态还要由服务端核实。
开发者查看这笔订单,发现创建支付请求时传了商户订单号,页面返回后却立即按前端结果修改状态;服务端用于接收支付通知的地址尚未完成验证。处理时保留原订单号,核对支付平台的订单查询结果,并检查通知地址能否被访问、通知中的签名和金额能否通过校验。若支付结果尚未查明,页面暂时显示“支付结果确认中”,避免用户再次点击造成重复下单。
通知即使已送达,也可能因服务端响应异常而重复推送。订单更新因此要按商户订单号识别同一笔交易:已处理的订单不再重复发放权益或再次记账。这个情境仍有一个待完成事项——通知能到达,不代表异常订单都已覆盖;开发者还要拿支付中断和延迟返回的订单,检查查询结果与页面状态如何同步。
准备上线时,核对退款与异常订单
测试环境里能付款,只覆盖了交易的一段。正式使用前,整理订单号、支付平台交易号与业务订单的对应关系;客服遇到“扣款了但没到账”的反馈,才有信息查询和核对。退款也不能仅在业务页面改成“已退款”,还要以支付通道返回的处理结果为依据,并保留相关记录。
如果服务商只提供支付链接、没有明确的小程序支付接入文档,先请对方确认支持范围,不急着投入前端开发。若已支持小程序支付,则拿一笔测试订单贯通创建订单、唤起支付和服务端确认;其中任何一环对不上,就用同一个商户订单号继续定位,不另造一笔订单掩盖原问题。

