PHP微信公众号支付部分流程

2017-09-28  本文已影响312人  townfish

1.登录微信商户平台

复制这两个签名文件,准备替换DEMO中去

微信官网下载PHP微信支付DEMO

替换掉原来微信支付DEMO里sdk cert文件夹中的两个证书文件

设置API密钥,用来填写配置文件

在API下方设置次数为100次(最高是100次)

修改lib下的配置文件

APPID和APPSECRET是在微信公众号查看

MCHID为商户号,KEY为前面步骤设置的API密钥

复制4个文件到项目中去

设置支付授权目录,JSAPI所在的路径


首次运行官方Demo可能会出现下面的错误


Fatalerror: 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(‘

WxPayApi::unifiedOrder(Object(WxPayUnifiedOrder)) #2 {main} thrown in D:\wwwroot\weixinpaytest\lib\WxPay.Api.php on line 564

这个错误通过修改文件WxPay.Api.php 解决,具体如下:

第537行

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);

curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验

改成下面的代码

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);

curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);//严格校验2


关于微信执行重复回调的问题

1.文档提示,需要在回调中写重复处理机制,我的做法是查询充值表中是否是存在订单号数据,如果存在,那么就结束die()

2.父类有输出,先前清空

//父类有输出,先前清空

ob_clean();

//返回微信停止回调

3.需要返回微信服务器数据,成功后微信就会结束回调。

但是在官方V3版本PHP的SDK中需要做以下修改

需要修改 lib->WxPay.Notify.php 的ReplyNotify函数,

$this->GetReturn_code($return_code) == "SUCCESS"

需要改成

$this->GetReturn_code() == "SUCCESS"

微信回调文件notify.php支付成功逻辑处理完成后,在文件末尾直接echo 'SUCCESS'

上一篇下一篇

猜你喜欢

热点阅读