前言:这个是公司服务号已上线,但是一直遗留的一个问题,无法再测试环境进行微信支付的测试,每次测试都需要在正式环境下测试。在我来这家公司后,老板这天突然给我说,这个问题比较着急,想解决一下。由于之前我也没做过相关的事情,就从测试环境走了一遍微信支付,果然不行,会报“不允许夸号支付”的错误。错误已经抛出,那就好解决了。
首先描述一下背景: 测试环境:testwx.aa.com 使用的微信公众号是在线申请的测试号(订阅号) 正式环境:wx.aa.com 使用的微信公众号是申请的已认证的服务号,并已开通了微信支付 老板给我说,别的公司的技术人员透露给他说,在测试环境使用正式的appid、key、商户号等等,就可以走正式微信号的支付来完成支付了。我照着做了一遍,发现会报“不允许夸号支付”的错误。
1,不允许夸号支付 经过网络上的搜索,大概知道了是因为在订阅号的环境下支付导致的。当我给老板说这个情况的时候,老板觉得肯定不是这个原因,因为别人都可以的。于是我决定再弄一个服务号来尝试一下,正好之前有一个服务号,已认证,但未开通支付。把那个服务号的配置配好后,进入那个服务号,走了一遍支付流程,可以支付。事后,老板再次询问那边的技术人员,的确是这样的结果,那边使用的测试号,也是一个服务号,而不是订阅号。
2,如何不使用第二个公众号,也可以支付测试 当我把这个结果告诉老板的时候,老板觉得,需要第二个公众号,太浪费资源了。于是,我们之后就尝试,在正式微信公众号下,发送测试微信的订单链接(商品链接等等),然后点击链接,进入支付页面,也是可以进行支付的。 3,实际开发配置要求 以上都是讲的一些思路过程,那么实际在解决这个事情的时候,具体要怎么做呢? 在测试环境下发起支付请求,所用到的appid、key、商户号等,都需要使用正式的,同时openid也要用正式的,也就是说,需要做一个openid的映射关系,将测试环境获取的openid转化为正式环境的openid,然后发起支付请求,就可以了。
|