欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP微信接入支付相关

程序员文章站 2022-05-18 10:30:08
...
最近给公司调了个bug,涉及到微信支付的相关接口。所以有几个问题在这里记录一下,希望能帮到其他人。

商户号

微信公众号管理面板中,有个微信支付菜单栏,进去以后,第一个标签中有可能会有两个序列号,其中一个是本公司作为普通商家时的序号。还有一个序号后面会标注着服务商字样,这个是本公司作为服务商时使用的序列号。普通商家,就是微信用户直接将钱转账给你;服务商,是一群普通商家的代理商,你可以管理一群在你的H5应用中卖货的商家,这时微信用户将钱转给商家,经过你作为代理。

由于这里的功能并不是我开发,所以有些代码细节也不是很确定。在这个文档中调用统一下单接口时,如果传入了本公司的普通商家号,则认为是转账给普通商户。如果需要转给本公司代理的某个商户,那么需要同时传入本公司服务商户号和子商户号。如果错误的将公司的服务商户号当做普通商户号使用,而没有传入子商户号,会报一个需要传入sub_mch_id的错误.

支付url未授权

微信支付会涉及到一个回调url,这个url是在调用微信接口的同时传入的。然而这个传入的url,如果需要带参数,一定不要用问号和&连接符,否则url会被误识别,比如:index.php?g=mobile&m=payment,最好转换成thinkphp中也很常用的'/'方式,比如/mobile/payment/order_id/111。

在微信支付接入菜单中,有个开发设置tab,里面有配置回调url。不在这里设置的url一概没有回调权限,会报错支付url未授权。配置回调url的权限有两步:

需要下载一个txt授权码文件,放置在web服务器根目录下,www.foobar.com/xxxxx.txt,如果你在自己的域名下能这样访问自己的授权码文件,就没问题了。

设置url的时候,如果需要传入一个支付单号的id,比如/mobile/payment/order_id/111,那么回调url中必须设置为www.foobar.com/mobile/payment/order_id/作为授权url,也就是说url最多只支持一级分隔符。

相关标签: PHP