微信支付
本猿最近在做微信支付相关的案例,参考了一下微信官方的支付文档,在本地跑了一下官方给的Demo,下面以Native支付为例,发现Native支付模式二的二维码就是不显示。文章源自微观生活(93wg.com)微观生活-https://93wg.com/4736.html
Native支付模式二不显示二维码文章源自微观生活(93wg.com)微观生活-https://93wg.com/4736.html
细心浏览了微信支付的官方文档,其中文档中有一个“通知地址(notify_url)”的字段名,描写里清楚明确的写道:“异步接管微信支付结果通知的回调地址,通知url必需为外网可走访的url,不能携带参数。”https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_1,这才明白原来微信支付回调必需是公网能走访到的,于是乎做了个用natapp做了内网穿透,结果却发现二维码还是不显示,又出什么幺蛾子了???没方法,一步一步地调试呗,记得有位老师说过,写代码就是一步步调试的进程。文章源自微观生活(93wg.com)微观生活-https://93wg.com/4736.html
在官方给的Demo里有个native.php的文件,在图中所示之处加之一个var_dum,查看一下这个打印的结果发现是空的。说明是在进行统一下单的进程中出问题了。文章源自微观生活(93wg.com)微观生活-https://93wg.com/4736.html
定位到GetPayUrl办法,发现这官方给的代码里仅仅记录了办法,咱们可以把这个异样给打印出来,加一行代码:return $e;文章源自微观生活(93wg.com)微观生活-https://93wg.com/4736.html
使用Postman工具测试有报错:curl犯错,过错码:60,于是我就明白了,这是由于在提交数据的时候有异样。文章源自微观生活(93wg.com)微观生活-https://93wg.com/4736.html
这时候定位到统一下单的办法unifiedOrder,如图:文章源自微观生活(93wg.com)微观生活-https://93wg.com/4736.html
这里有一行$response = self::postXmlCurl;看到这里,想必大家可能就明白了,8成是postXmlCurl这兄弟有问题了。来到该办法下,咱们可以看到官方给的注释,这个办法的意思就是以post方式提交xml数据导对应的url接口。大概在567行左右吧,可以看到这两行代码:文章源自微观生活(93wg.com)微观生活-https://93wg.com/4736.html
curl_setopt;文章源自微观生活(93wg.com)微观生活-https://93wg.com/4736.html
curl_setopt;//严格校验文章源自微观生活(93wg.com)微观生活-https://93wg.com/4736.html
将这两行代码的第三个参数分别改成FALSE,以及1便可。
这两个参数的意思:
- CURLOPT_SSL_VERIFYPEER:禁用后cURL将终止从服务端进行验证。使用CURLOPT_CAINFO选项设置证书使用CURLOPT_CAPATH选项设置证书目录以上就是微观生活(93wg.com)关于“四步轻松教你弄定微信支付本地调试”的详细内容,希望对大家有所帮助!
评论