开始!
接支付前,看了微信支付文档(有点乱),也看了一些文章,都是假V3,点进去看demo还是XML格式,坑,不过多描述。
V3接起来整体还是有些坑的,不过坑不深,这里简单记录一下,避免忘了再踩!
首先,V3数据传输采用json格式,V2还是XML格式,然后,就是一些加密、解密、验签之类的修改,不能再用V2的,要改成V3的,这点官网文档已经写的很清楚了。
V3微信也有提供简单demo,跟V2不一样,V3不在下载里面,V3在文档中叫“开发工具”,下载下来可以直接用,里面加密、解密、验签、http请求等等都已经封装好了,自己做这些的话要花费很久还不一定对,建议直接用微信提供的。
V3需要2个证书,一个商户证书,一个微信支付证书,两个缺一不可,根据开发工具里面的注释,替换成相应的证书即可。
一般商户证书可以直接拿到私钥,由于我们的商户证书当时只保留了p12文件,所以又找方法从p12文件中提取了一下,提取的时候要注意,直接提取出来的是php可以直接用的私钥,java要用的话还要把提取出来的私钥再转一次才可以用,具体方法问度娘。
微信支付证书微信提供的开发工具可以直接下载,微信也提供有固定的微信支付证书下载demo,传入相应的参数即可。
自行设置api-v3-key,长度有固定要求,跟着提示走即可。
坑1,回调地址:
公众号支付的json数据demo,回调地址前面多个空格,一定要去掉空格,不然怎么都是400、401,当时为了直接用微信的回调先跑通,没改回调,没注意空格,坑到我怀疑人生。
1:我们的公众号是游戏类型,V3介绍是推荐商城类型或者微信支付分类型,以为类型有问题。
2:我们的商户证书私钥是从p12提取出来的,会不会证书有问题。
3:狂撸微信提供的demo和开发文档,看看到底哪里漏了什么。
4:微信支付社区有很多400之类的问题,自己填也提问了一些,回答的感觉都是机器人。
5:自己的代码或者必要的参数有问题,疯狂检查。
坑2,支付目录:
添加或者修改支付目录,现在是设置到根目录就可以,但是设置的时候要注意,要设置2次,第一次设置完以后不要动(就是在当前页面啥也不做),也不要刷新页面,把刚才的路径粘贴进去再设置一遍,这样新的支付目录地址才能添加成功,不要问我为什么,腾讯的骚操作之一。
然后公众号支付需要一个openid,获取方法度娘有很多,支付基本就这个套路,空了整一个demo出来,换换参数直接用。
结束!
已更新:
demo地址
点我