程序员如何突破微信支付授权目录数量限制?

2024-06-22
来源:网络整理

首先祝大家国庆节快乐,假期期间平安出行,按时返工,节日快乐!

作为一名普通的程序员,能体验一下自己开发的微信支付实属不易。

从公众号接口权限描述中我们可以发现,只有拥有企业资质认证的服务号才具备微信支付权限。不仅如此,微信还限制了支付授权目录,最多只能添加5个。

如何突破5个授权目录的限制?

自然而然我们想到了转发,也就是借用借用者的外网地址。转发不就行了吗?下面我们来说说如何借用。

准备外网地址,注意外网地址的正确性影响转发,直接影响付款,99%的人死在这里!去购买(10%折扣码),购买VIP-1类型,不要选择“免费”,免费的在这里用不了。

填写域名和端口

支付调试授权和支付分开调试,授权用微信提供的测试号支付调试用我给的那个,是硬编码的(师兄的干货- -)使用支付key(见课程源码doc目录)本地生成预支付结果(这一步不需要验证支付授权目录)我使用的是源码8-4,浏览器访问

http://127.0.0.1:8080/sell/pay/create?orderId=1501830787417512510&returnUrl=http://www.imooc.com

替换成自己的数据库,访问后日志显示

2018-05-28 15:18:18,380 - 【微信支付】response={ "appId": "wxd898fcb01713c658", "timeStamp": "1527491898", "nonceStr": "ywTwMHzT19Yw8R2N", "packAge": "prepay_id=wx28151818305128388a4912842746008030", "signType": "MD5", "paySign": "69177DFF398837C6B02787954526C961" }

这就意味着没有问题,所以继续。

启动客户端。如果你不知道如何启动,请先阅读教程。我在 Mac 上启动了它。

这是我在网上购买的外网地址,图中很清楚的显示了映射关系。

http://sell.natapp4.cc -> 127.0.0.1:8080

现在替换上面的地址,再次访问,即访问

http://sell.natapp4.cc/sell/pay/create?orderId=1501830787417512510&returnUrl=http://www.imooc.com

查看日志显示

2018-05-28 15:34:06,792 - 【微信支付】response={ "appId": "wxd898fcb01713c658", "timeStamp": "1527492846", "nonceStr": "N0SvwqzVBT8M8J0Y", "packAge": "prepay_id=wx28153406620754388a4912842776390555", "signType": "MD5", "paySign": "7379EA29E291B359E319722FFB66A75C" }

重点来了,接下来使用微信访问(手机不需要开代理因为访问的是外网地址)

如果访问后页面一片空白,那么很有可能是js部分写错了,访问一下就可以看到错误了。

微信商户秘钥_商户密钥微信支付怎么用_微信商户支付密钥

修改完代码之后,再次尝试用微信访问,却提示该网址未注册。

#不要恐慌

这是很正常的,没有问题!

看到这个错误说明你离成功不远了!原因是微信支付后台没有配置这个地址导致支付授权目录错误。

申请钥匙借用权限(付费借用,29元/月) 好了,钥匙其实上面已经给了,你现在申请的其实是转发权限。

进入【师兄的商品】公众号-关于-借阅/续借,

外网怎么填,请注意99%的人都会死在这里。

仔细地看!

仔细地看!

仔细地看!

如果发现uid无法填写,请复制给我然后发邮件给我,借过账号的同学之前没有填写uid,所以无法进入。

一定要填写你调试成功的地址,我的是

http://sell.natapp4.cc/sell/pay/create

请根据您的实际情况填写,一旦填写则不可修改!

提交支付,立即生效,您可以通过以下地址微信支付:

http://proxy.springboot.cn/pay?openid=OPENID&orderId=1501830787417512510&returnUrl=http://www.imooc.com

為您自己的,必須填写。

另外,如果你想查看借阅账号的到期日期,可以在公众号上查看

关于付款后跳转的地址?

地址跳转逻辑在.ftl中

function(res){ //if(res.err_msg == "get_brand_wcpay_request:ok" ) { //} // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。 location.href = "${returnUrl}"; }

它可以是硬编码的,也可以由后端渲染模板。

分享