美文网首页
PHP微信公众号支付部分流程

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

作者: townfish | 来源:发表于2017-09-28 17:03 被阅读312次

    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'

    相关文章

      网友评论

          本文标题:PHP微信公众号支付部分流程

          本文链接:https://www.haomeiwen.com/subject/frqvextx.html