<blockquote>转:前一篇微信JSApi支付~坑和如何填坑文章反映不错,所以又写了个后篇,呵呵。
每个第三方在线支付系统中都会有至少两类订单号,其一为支付系统的订单号,我们称为transactionId,其二为商户平台的订单号,我们通常称为out_trade_no,这两个号一般用来对账,在第三方支付平台你可以通过这两个订单号来查询订单的状态,而在商户自己的网站后台,也可以查询它的状态,一般地,transactionId由支付系统生成,并在回调时转回给商户;而out_trade_no一般在商户平台生成,自己可以设计自己的规则,然后把这个ID转到第三方支付平台,在支付成功后,第三方同样把这个号转回来,我们通过这个号进行商户系统的其它操作。
地址:http://www.cnblogs.com/lori/p/5364213.html</blockquote>
<blockquote>先下载资源包,然后进行设置。资源包:链接:http://pan.baidu.com/s/1eStGri6 密码:1fsw</blockquote>
你需要设置的4个地方:
A
B
C
D
<blockquote>All bugs of package above already been cleared . The solutions are as follows: </blockquote>
#BUG1:
<blockquote>Notice: "Undefined property: JsApiPay::$curl_timeout in C:\xampp\htdocs\www\curtain\public\WxPay414\WxPay.JsApiPay.php on line 100"</blockquote>
给这里改成30,指30秒
#BUG2:
<blockquote>Fatal error: Uncaught WxPayException: curl出错,错误码:60 in C:\xampp\htdocs\www\curtain\public\WxPay414\lib\WxPay.Api.php:564
Stack trace:
#0 C:\xampp\htdocs\www\curtain\public\WxPay414\lib\WxPay.Api.php(62): WxPayApi::postXmlCurl('<xml><appid><![...', 'https: //api.mch...', false, 6)
#1 C:\xampp\htdocs\www\curtain\public\WxPay414\Index.php(28): WxPayApi::unifiedOrder(Object(WxPayUnifiedOrder))
#2 {main}
thrown in C:\xampp\htdocs\www\curtain\public\WxPay414\lib\WxPay.Api.php on line 564</blockquote>
解决办法(可以不看):http://blog.csdn.net/qq_34755805/article/details/51221932
把红框里的两行代码替换成538-545行 (不推荐)
把红框里的TRUE 和 2 都改成 FALSE (推荐)
#BUG3:
<blockquote>Fatal error: Uncaught WxPayException: 参数错误 in C:\xampp\htdocs\www\curtain\public\WxPay414\WxPay.JsApiPay.php:73
Stack trace:
0 C:\xampp\htdocs\www\curtain\public\WxPay414\Index.php(29): JsApiPay->GetJsApiParameters(Array)
1 {main}
thrown in C:\xampp\htdocs\www\curtain\public\WxPay414\WxPay.JsApiPay.php on line 73</blockquote>
在29行打印一下:
<blockquote>Array
(
[return_code] => FAIL
[return_msg] => time_expire时间过短,刷卡至少1分钟,其他5分钟
)</blockquote>
解决办法一(删除time_expire)(不推荐):http://blog.csdn.net/hongsejiaozhu/article/details/49592729
解决办法二(更新服务器时间)(错误原因在于服务器的时间不对,应该是时区问题)(可以不看):http://bbs.we7.cc/forum.php?mod=viewthread&tid=23143
- 可以修改php.ini 文件里的 date.timezone (有2个)(推荐方法二)
- 在文件头加上:ini_set('date.timezone','Asia/Shanghai');(推荐该方法)
在公众平台设置授权目录:
#BUG4:
在支付时,弹出当前页面的URL未注册,肯定是支付授权目录填错了,注意url的大小写。
<blockquote>以下两个地址要一致,你的支付地址是http://wx.clbon.cn/WxPay414/index.php index.php的首字母i大小写都行</blockquote>
<blockquote>在laravel框架里,你配置这样的路由:http://wx.clbon.cn/makeorder/ 是你的支付页面,你公众号设置的支付授权目录也是这,会提示URL未注册,要把路由后边随便加个东西才行</blockquote>
此时可以测试支付成功!