场景:
微信订阅号, 从菜单处进入手机商城, 购买某产品, 提示不能跨号支付。 (我想是因为微信支付AppId写的是服务号的||或者是订阅号不能发起支付了)。
我想到的解决办法是: 当提示不能跨号支付时, 跳转到产生支付二维码的页面, 引导用户使用二维码支付。
现在现实了, 但是识别图中二维码时, 提示:
<err_code><![CDATA[OUT_TRADE_NO_USED]]></err_code> <err_code_des><![CDATA[商户订单号重复]]></err_code_des>
看官方文挡, 说
OUT_TRADE_NO_USED |
商户订单号重复 |
同一笔交易不能多次提交 |
请核实商户订单号是否重复提交 |
出现订单号重复的问题, 是由于我之前请求过jsapi支付了? 只能进行一次请求? 那我请求失败付款失败也算啊? 这算是坑爹吗?
同一个订单号, 发起过jsapi pay, 就不能再发起native pay了吗?
现在我想到的是,在第一步付款页面, 判断来路, 如果是订阅号过来的链接, 也像PC访问一样, 直接显示二维码支付了, 这样就两种方式只搞一种了。
我看到过有些订阅号案例, 出现不能跨号支付提示, 自动跳转到扫码支付, 它可以成功付款。。。。
有没有做过这块的大侠, 来指导一下吧。
算了, 换了种方式
最后是怎么解决的啊! 已添加你微信了,感谢通过!
我用一个新的单号用于支付,可以解决微信支付不允许订单号重复的问题
$out_trade_no = WxPayConf_pub::APPID."$timeStamp";
$unifiedOrder->setParameter("out_trade_no","$out_trade_no");//商户订单号
然后把订单号挂到附加数据里用于自己的订单跟踪。
$unifiedOrder->setParameter("attach","$order_id");
不知道楼主用了啥方式?