微信支付错误两个问题的解决:curl出错,错误码:60
发布时间:2017-01-07, 14:13:21 分类:PHP | 编辑 off 网址 | 辅助
图集1/3
正文 1778字数 275,217阅读
如下是运行微信支付测试代码时出错代码:Warning: curl_setopt() expects parameter 2 to be long, string given in D:\wwwroot\weixinpaytest\pay\WxPay.JsApiPay.php on line 99
Fatal error: Uncaught exception ‘WxPayException‘ with message ‘curl出错,错误码:60‘ in D:\wwwroot\weixinpaytest\lib\WxPay.Api.php:564 Stack trace: #0 D:\wwwroot\weixinpaytest\lib\WxPay.Api.php(62):
WxPayApi::postXmlCurl(‘<xml><appid><![...‘, ‘https://api.mch...‘, false, 6) #1 D:\wwwroot\weixinpaytest\pay\jsapi.php(36):
WxPayApi::unifiedOrder(Object(WxPayUnifiedOrder)) #2 {main} thrown in D:\wwwroot\weixinpaytest\lib\WxPay.Api.php on line 564
Run code
Cut to clipboard
第一个问题,这个问题完全是微信团队的问题,给出的example就是错的:
Warning: curl_setopt() expects parameter 2 to be long, string given in D:\wwwroot\weixinpaytest\pay\WxPay.JsApiPay.php on line 99
Run code
Cut to clipboard
找到WxPay.JsApiPay.php文件的99行,curl_setopt($ch, CURLOP_TIMEOUT, 30);
微信团队example代码里少了一个“T”,正确代码应该是
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
Run code
Cut to clipboard
这样,这一个问题就解决了。
下面说第二个问题:
Fatal error: Uncaught exception ‘WxPayException‘ with message ‘curl出错,错误码:60‘ in D:\wwwroot\weixinpaytest\lib\WxPay.Api.php:564 Stack trace: #0 D:\wwwroot\weixinpaytest\lib\WxPay.Api.php(62):
WxPayApi::postXmlCurl(‘<xml><appid><![...‘, ‘https://api.mch...‘, false, 6) #1 D:\wwwroot\weixinpaytest\pay\jsapi.php(36):
WxPayApi::unifiedOrder(Object(WxPayUnifiedOrder)) #2 {main} thrown in D:\wwwroot\weixinpaytest\lib\WxPay.Api.php on line 564
Run code
Cut to clipboard
这个错误通过修改文件WxPay.Api.php 解决,具体如下:
第537行
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验
to
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);//严格校验2
Run code
Cut to clipboard
这样,这两个问题就解决了!
(支付宝)给作者钱财以资鼓励 (微信)→
有过 2 条评论 »
jssdk.php
也修改
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
否则也会报错:invalid signature错误
require_once(__DIR__.'/db_connect.php'); <?php require_once __DIR__ . '/file.php';
errmsg config ok 调试模式下正常了
注释掉关闭调试模式
//console.log('fdasfdas'); wx.config({ /*debug: FALSE,*/
<?php require_once "jssdk.php"; $jssdk = new JSSDK("wx2e642********", "ac59c********643"); $signPackage = $jssdk->GetSignPackage(); ?> <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> <script> /* * 注意: * 1. 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 * 2. 如果发现在 Android 不能分享自定义内容,请到官网下载最新的包覆盖安装,Android 自定义分享接口需升级至 6.0.2.58 版本及以上。 * 3. 常见问题及完整 JS-SDK 文档地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html * * 开发中遇到问题详见文档“附录5-常见错误及解决办法”解决,如仍未能解决可通过以下渠道反馈: * 邮箱地址:weixin-open@qq.com * 邮件主题:【微信JS-SDK反馈】具体问题 * 邮件内容说明:用简明的语言描述问题所在,并交代清楚遇到该问题的场景,可附上截屏图片,微信团队会尽快处理你的反馈。 */ //console.log('fdasfdas'); wx.config({ /*debug: FALSE,*/ appId: '<?php echo $signPackage["appId"];?>', timestamp: <?php echo $signPackage["timestamp"];?>, nonceStr: '<?php echo $signPackage["nonceStr"];?>', signature: '<?php echo $signPackage["signature"];?>', jsApiList: [ // 所有要调用的 API 都要加到这个列表中 'onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'onMenuShareQZone' ] }); wx.ready(function () { // 在这里调用 API wx.onMenuShareTimeline({ imgUrl: 'http://********.cn/logowx.jpg?1' }); wx.onMenuShareAppMessage({ desc: '地址:********商业广场3楼。电话:07********99', // 分享描述 imgUrl: 'http://********.cn/logowx.jpg?1' }); wx.onMenuShareQQ({ desc: '地址:********商业广场3楼。电话:07********99', // 分享描述 imgUrl: 'http://********.cn/logowx.jpg?1' }); wx.onMenuShareWeibo({ desc: '地址:********商业广场3楼。电话:07********99', // 分享描述 imgUrl: 'http://********.cn/logowx.jpg?1' }); wx.onMenuShareQZone({ desc: '地址:********商业广场3楼。电话:07********99', // 分享描述 imgUrl: 'http://********.cn/logowx.jpg?1' }); }); </script>
<div id="wx_pic" style="margin:0 auto;display:none;"> <img src="https://img.******.com/article/cover/201703/11/175600370063.png"> </div> <meta content="https://img.*****.com/article/cover/201706/27/090518161674.jpg" property="og:image">