《PHP支付接口教程,详解微信支付(一)》要点:
本文介绍了PHP支付接口教程,详解微信支付(一),希望对您有用。如果有疑问,可以联系我们。
维易PHP培训学院每天发布《PHP支付接口教程,详解微信支付(一)》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。
三年夜支付方式里面,最复杂也是坑最多的非微信支付莫属,我们从微信开始讲.另外两个分别是支付宝和银联支付.
常见的微信付出种类有下列四种:
微信JS支付,也称公众号内支付,使用场景便是微信里面的H5商城,在微信以外的地方无法使用
微信PC付出,也称扫码付出,使用场景是PC端,注意这里并不是“原生扫码付出”
微信APP付出,使用场景是原生或者混合APP
微信WEB付出,场景是微信外的触屏网站,这个接口一直都有,只是最近才开放出来可以让普通公司申请,这个如果有机会的话也会讲一讲
从接口申请阶段开始,四种方式就各有各的坑,这里不得不感激一下腾讯,替我们增加了很多工作量.
因为是面向开发人员的教程,所以具体的申请条件、如何申请等内容并不会讲的太详细,只必要注意下面几点即可:
请领导把你的微信号设置为"大众号的临时管理员
把公众号和商户平台的账号暗码拿到手
微信平台需要本身去重查看APPSECRET,这个过程需要公众号管理员授权
商户平台需要本身去配置KEY,这个过程会有两条验证短信发到领导手机上
总之第一阶段最后必要把这四个数据准确的拿到手:
APPID——登录"大众平台查看
APPSECRET——登录"大众平台申请重置之后查看
MCHID——商户平台的ID
KEY——商户平台本身设置的KEY
这里指的配置是配置公众平台,配置有必要详细的说一下,现在各种现成的项目和集成支付代码触目皆是,可是你就是用不起来,这个时候千万不要花时间去审查代码,是你的配置出了问题.让我们从原理上来理解一下:
业务域名、 JS接口平安域名、网页授权域名
这三个参数在同一个页面进行配置,配置办法也相同,直接填写域名即可.如果你遇到的问题是REDIRECT_URI错误,那多半就是这里出现了问题.
付出授权目录
这里必定要填写实际发起支付的页面的URL,并且以斜杠结尾.那么就有三个问题:
我完全没搞懂实际提议支付的是哪个URL
我并不清楚什么叫斜杠结尾
我设置装备摆设对了为什么没用
在获取OPENID的过程中会有一次重定向,一般是重定向回本页面,但也有部分项目不会这么做,好比ecshop,就被重定向到了别的页面,所以实际发起页面也就变成了别的页面.
斜杠结尾便是把你的URL从右边开始数,碰到第一个斜杠,把你数过的部分删掉,剩下的便是正确的配置内容.当然还有广大ThinkPHP3.2用户,你们的参数用斜杠来传,就意味着你们在支付页面只能带一个参数,否则怎么配置都不会对的.
有可能你压根没配置对,请参考前两条.如果你确定配置对了,请去喝一杯咖啡,这个配置有时候不会顿时生效.
倒一杯咖啡,打开你心爱的代码编辑器,依照这6个步骤来,不要浮躁,你将会再次感谢腾讯……
把你在第一阶段准备的参数放到项目中(运气好的话此时你已经完成了开发)
测试CODE有没有获取到
测试OPENID有没有获取到
测试预付出订单是否正常
测试JS是否正常
测试回调数据是否正常
把踩过的坑或者套路与年夜家分享一下:
在官方DEMO中,JsApiPay类下面GetOpenid办法中第4行,
$_SERVER['PHP_SELF']
和
$_SERVER['QUERY_STRING']
之间少了一个问号.导致的问题便是有一些用GET传参的同学,OPENID死活获取不到.
订单名称里面不克不及含有&,暂时只发现这个符号会使得支付发起失败
签名错误,一般是再去检查参数,特别是一些看不到的字符可能混在参数中,最好不要怀疑签名办法有问题.流程中有4个左右的地方会签名,或者验证签名,一定要确保所使用的KEY都是正确的.
在调试JS的时候用
alert(res.err_code+res.err_desc+res.err_msg)
把差错弹出来
测试回调的时候用
$GLOBALS['HTTP_RAW_POST_DATA']
来接收微信的关照,做好是接收到就存到数据库里,先确保接收到了,再去调签名和业务逻辑.
操作类的内容和理论类的内容是分开的,例如本文便是操作类的,今后将会有探讨JS支付原理或者公私钥原理的文章,但不是现在,因为不想开留太多坑.
在文章节奏的把控上略显得有些不足,不过我会尽量不出现大篇幅代码,多分享经验干货,多以初学者的角度行文.如果有问题欢迎留言讨论,希望能对大家有赞助!
以上内容属于作者原创,特此声明,如需转载,请取得批准
转载请注明本页网址:
http://www.vephp.com/jiaocheng/9653.html