微信支付JSAPI开发中的问题

看到此文,是否觉得体内洪荒之力爆发,饥渴难耐想吐槽、情不自禁想捐赠
本文为原创文章,尊重辛勤劳动,可以免费摘要、推荐或聚合,亦可完整转载,但完整转载需要标明原出处,违者必究。

支付宝微  信

前言:这篇文章讲的是利用微信官方提供的JSPAI接口,实现微信网页支付。希望在看之前,要确认一下几件事情,否则会让您在解决问题是很费解。

① 接口文档版本号是V3.3(在官方提供的PHP DEMO中的README.txt文件中查看。当然,也可以参考压缩包的名字(wxm-payment-biz-api218f8e.zip,我想官方不会把不同版本的文档压缩成一个名字吧!)来确认版本;

② 微信支付PDF文档的版本为V3.3.7(如果上述版本对了,这步应该也是一致的,因为这两个文件是在一个包里);

③ 该文章说的是JSAPI的开发;

今儿是工作的第五个工作日。前两天在调整页面,后两天在调整微信支付功能。

今天是周日,工作周的第一天。调了两天的微信支付(JSAPI:调用微信JSAPI接口实现微信网页支付功能),经过今天早上的一分钟“努力”解决,感觉很爽。下面说说我在开发微信支付过程中遇到的若干问题。

第一天,简单看了下微信支付的文档和源码(压缩包名:wxm-payment-biz-api218f8e.zip;PDF文档名:【微信支付】微信公众号支付接口文档V3.3.7.pdf;)。然后,调整了微信的配置文件。阐述下有几个配置项

1、 MCHID

注释是“受理商ID,身份标识”。可以在邮件中查看,这个邮件是在申请支付的某个流程中回执的。由于我不是微信号的“主人”,所以在哪个环节不好确定。同时,邮件中还会有个密码。利用这个MCHID和密码可以到微信商户平台(https://pay.weixin.qq.com/)登录,进入管理商户订单的界面。

2、 KEY 

这个KEY有些苦逼啊,文档注释说“商户支付密钥Key。审核通过后,在微信发送的邮件中查看”。你妹啊,邮件里哪有这个KEY呢?算了,百度了下,发现是在微信商户平台设置的。利用上面提到的账户信息登录商户平台后,点击左侧的“安全设置”(记不清了,如果不是这个关键字,找到证书管理的选项即可),然后需要安装浏览器证书插件后,手动设置这个KEY。随意设置,可以用MD5加密后的字符串,比如MD5(“GenialX”);

3、 SSLCERT_PATH

注释为“证书路径,注意应该填写绝对路径”,给的默认格式为“/xxx/xxx/xxx/WxPayPubHelper/cacert/apiclient_cert.pem”。好吧,我直接用的“http://www.domain.com/wxpay/cacert/apiclient_cert.pem”这种格式。为什么有些无奈,因为服务器是Linux,那么绝对路径应该是/var/home/类似的样子,那到底是从系统文件的路径写,还是从url的路径写呢?简单看了下利用这个常量的文件,用的是Curl函数调用的,那么我想用http开头的链接应该不会有问题了。

4、 SSLKEY_PATH

同上

5、 CURL_TIMEOUT 

这个常量在这个版本的DEMO中没有用到,直接写的30,开发者注意修改。

 

刚才介绍了几个有歧义的常量,下面还有个问题需要注意。在WxPayPubHelper.php文件中的第155行的常量有拼写错误。

curl_setopt($ch, CURLOP_TIMEOUT, $second); // 常量是CURLOPT_TIMEOUT吧

官方的文档我很无语哦! :《

好了,配置项OK了。程序部署到网站的wxpay项目下(http://www.domain.com/wxpay/)。然后在微信公众号管理后台的微信支付的界面中进行了支付授权目录的设置。设置后不知道为什么显示为空,我没有注意。同时,我在支付测试目录中也设置了路径,同时把测试号的微信ID填入白名单。

这时,测试的时候一直调试system:access_denied(同:system:not_allowed)。就这样,百思不得琪姐。相信大家知道是什么问题吧?

周六,在动车上,仔细看了下PDF文档,觉得问题出现在支付授权目录下。就这样,今天我用了一分钟的时间解决了调试了两天的问题。切记,阅读官方文档时多么的重要!既然要用人家的接口,都不花心思去了解人家,怎么能做好呢?(额,好像和追女孩有异曲同工之妙哦...)。

解决步骤:把测试的账号微信ID从白名单中删除,更改掉支付的测试目录到其他路径(只要不和授权的目录一致即可)。然后,更改授权支付目录,设置后在有显示了。就这样,再测试就OK了。

接下来,我要解决DEMO中的类库与目前项目(Codeigniter框架)的整合工作。

总结:进行接口开发时一定要多月的官方提供的文档,否则就像我这样,一个配置问题浪费了我两天时间。


 

文章来源:胡旭个人博客 => 【原】微信支付JSAPI开发中的问题

转载请注明出处,违者必究!


这是一篇原创文章,如果您觉得有价值,可以通过捐赠来支持我的创作~
捐赠者会展示在博客的某个页面,钱将会用在有价值的地方,思考中...


分类: CI, PHP, 微信, 技术 | 标签: , , , , | 评论 | Permalink

发表评论

电子邮件地址不会被公开。