thinkphp5 微信公众号内支付

thinkphp5引用微信js_sdk进行公众号支付

 

我在这个过程中用的是微信提供的js-sdk( 官方下载地址为:js_sdk下载地址 ); 

在这里我们进行的是

1.  以下我实际开发中采用的的是tp5框架 ,我把js-sdk放在了 vendor文件夹下 也就是我下图中名为pay的文件夹.。文件下载地址(github开发实例下载地址) 

thinkphp5 微信公众号内支付_第1张图片

你需要对各个文件的相互引入进行更改,我这里的PAY_PATH实在入口文件定义的。指向为 vendor/pay文件夹 

thinkphp5 微信公众号内支付_第2张图片

thinkphp5 微信公众号内支付_第3张图片

2.再C层引入 JsPayApi  调取统一下单接口 生成paySign (统一下单接口地址::统一下单接口文档地址)

    

thinkphp5 微信公众号内支付_第4张图片

3.前端发起微信支付页面  我在这里采用的是 ajax请求后台paySign    发起支付

thinkphp5 微信公众号内支付_第5张图片

以上正常进行的话会出现以下界面

    

thinkphp5 微信公众号内支付_第6张图片

 

 

错误相应的解决办法

    (get_brand_wcpay_request:fail)   1):公众号-》微信支付-》开发配置 支付授权目录设置问题,测试环境需要配置测试授权目录和添加测试白名单

thinkphp5 微信公众号内支付_第7张图片

 

2)签名错误:

参数顺序错误,PHP需要按照参数字母进行ksort排序;

 

4.支付回调参数获取(2019-11-22 20:00:00)补充

           //以下三行,为获取微信支付回调传到回调地址的参数
        $xmlData = file_get_contents('php://input');
        libxml_disable_entity_loader(true);
        $result = json_decode(json_encode(simplexml_load_string($xmlData, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
    
//试例JSON, 针对传来的订单号以及支付金额 进行数据更改 网站订单状态更改。     
  $result = json_decode('{"appid":"****","bank_type":"CFT","cash_fee":"3","fee_type":"CNY","is_subscribe":"N","mch_id":"******","nonce_str":"99ly1omsup0svx96ddpi5qsz52iwa6fv","openid":"***","out_trade_no":"2019092099981001025","result_code":"SUCCESS","return_code":"SUCCESS","sign":"9B5F7999D21CA38C8A3313AA5DDFF8A7","time_end":"20191105140545","total_fee":"3","trade_type":"JSAPI","transaction_id":"4200000426201911057657870233"}',true);

                                                                                                                            回忆是唯一不会变的,就算一切都已沧海桑田。

你可能感兴趣的:(PHP,微信开发,框架)