thinkphp5集成微信支付【公眾號支付】快捷路徑


 1 下載官方的測試用例PHP版

https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1

 

2 到vendor目錄新建weixin文件夾

3 把解壓后的文件 lib里面的文件 復制到 vendor/weixin文件夾

4 到解壓后的examples里面,找到公眾號支付所用的jsapi.php

在當前目錄找到

WxPay.JsApiPay.php
log.php

把這2個文件也復制到 vendor/weixnin

5 把jsapi.php里面的代碼 復制到控制器的方法中

比如 public function index()

注意 里面有個打印函數,可以獨立封裝

6 public function index()里面的代碼大致如下

修改的文件路徑如下

ini_set('date.timezone','Asia/Shanghai');
        //error_reporting(E_ERROR);
        require_once "../vendor/weixin/WxPay.Api.php";
        require_once "../vendor/weixin/WxPay.JsApiPay.php";
        require_once "../vendor/weixin/log.php";
 
        //初始化日志
        $logHandler= new \CLogFileHandler("../logs/".date('Y-m-d').'.log');
        $log = \Log::Init($logHandler, 15);
        
        
        
        //①、獲取用戶openid
        $tools = new \JsApiPay();
        $openId = $tools->GetOpenid();
        
        //②、統一下單
        $input = new \WxPayUnifiedOrder();
        $input->SetBody("test");
        $input->SetAttach("test");
        $input->SetOut_trade_no(\WxPayConfig::MCHID.date("YmdHis"));
        $input->SetTotal_fee("1");
        $input->SetTime_start(date("YmdHis"));
        $input->SetTime_expire(date("YmdHis", time() + 600));
        $input->SetGoods_tag("test");
        $input->SetNotify_url("http://paysdk.weixin.qq.com/example/notify.php");
        $input->SetTrade_type("JSAPI");
        $input->SetOpenid($openId);
        $order = \WxPayApi::unifiedOrder($input);
        echo '<font color="#f00"><b>統一下單支付單信息</b></font><br/>';
        $this->printf_info($order);
        $jsApiParameters = $tools->GetJsApiParameters($order);
        
        //獲取共享收貨地址js函數參數
        $editAddress = $tools->GetEditAddressParameters();

1)頂部文件的路徑

2)類加了\

7 即可繼續調試吧

 

注:本來想嘗試放到extend目錄下,復制進去很多類不能直接使用,需要重新初始化,但是里面有個data.class里面有超過10個類,所以放棄了這個思路

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM