您好,登錄后才能下訂單哦!
小編給大家分享一下ThinkPHP框架整合微信支付之刷卡模式怎么實現,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
具體如下:
step1:下載微信刷卡支付demo,如下圖:
WxPayMicropayHelper:這個文件夾下就是刷卡支付微信提供的類庫
demo:這個文件夾下是關于刷卡支付的詳細demo
我們來看一下demo文件夾:
這里我們要用到
micropay_call.php:這個就是刷卡支付的具體demo
我們可以把里面內容復制下來,放到TP的控制器中(稍后介紹)
step2:把下載下來的微信刷卡支付的類庫同樣放到Vendor目錄下:
step3:上面的類庫放好后我們可以來寫控制器里面的內容了首先還是引入類庫:
/** * 初始化 */ public function _initialize() { //引入WxPayPubHelper vendor('WxPayMicropayHelper.WxPayMicropayHelper'); }
接下來把micropay_call.php下的代碼提取出來復制到控制器下,并給個名字:
public function micropay() { //自定義訂單號,此處僅作舉例 $timeStamp = time(); $out_trade_no = \WxPayConf_micropay::APPID."$timeStamp"; //獲取用戶一維碼 if (isset($_POST["auth_code"])) { $auth_code = $_POST["auth_code"]; //使用被掃支付接口 $micropayCall = new \MicropayCall(); //設置被掃支付接口參數 //設置必填參數 //appid已填,商戶無需重復填寫 //mch_id已填,商戶無需重復填寫 //noncestr已填,商戶無需重復填寫 //spbill_create_ip已填,商戶無需重復填寫 //sign已填,商戶無需重復填寫 $micropayCall->setParameter("body","貢獻一分錢");//商品描述 $micropayCall->setParameter("out_trade_no","$out_trade_no");//商戶訂單號 $micropayCall->setParameter("total_fee","1");//總金額 $micropayCall->setParameter("auth_code","$auth_code");//交易類型 //非必填參數,商戶可根據實際情況選填 //$micropayCall->setParameter("sub_mch_id","XXXX");//子商戶號 //$micropayCall->setParameter("device_info","XXXX");//設備號 //$micropayCall->setParameter("attach","XXXX");//附加數據 //$micropayCall->setParameter("time_start","XXXX");//交易起始時間 //$micropayCall->setParameter("time_expire","XXXX");//交易結束時間 //$micropayCall->setParameter("goods_tag","XXXX");//商品標記 //$micropayCall->setParameter("openid","XXXX");//用戶標識 //$micropayCall->setParameter("product_id","XXXX");//商品ID //提交訂單 $micropayCallResult = $micropayCall->getResult(); //商戶根據實際情況設置相應的處理流程,此處僅作舉例 if ($micropayCallResult["return_code"] == "FAIL") { echo "通信出錯:".$micropayCallResult['return_msg']."<br>"; } elseif($micropayCallResult["result_code"] == "FAIL") { echo "出錯"."<br>"; echo "錯誤代碼:".$micropayCallResult['err_code']."<br>"; echo "錯誤代碼描述:".$micropayCallResult['err_code_des']."<br>"; } else { echo "用戶標識:".$micropayCallResult['openid']."<br>"; echo "是否關注公眾賬號:".$micropayCallResult['is_subscribe']."<br>"; echo "交易類型:".$micropayCallResult['trade_type']."<br>"; echo "付款銀行:".$micropayCallResult['bank_type']."<br>"; echo "總金額:".$micropayCallResult['total_fee']."<br>"; echo "現金券金額:".$micropayCallResult['coupon_fee']."<br>"; echo "貨幣種類:".$micropayCallResult['fee_type']."<br>"; echo "微信支付訂單號:".$micropayCallResult['transaction_id']."<br>"; echo "商戶訂單號:".$micropayCallResult['out_trade_no']."<br>"; echo "商家數據包:".$micropayCallResult['attach']."<br>"; echo "支付完成時間:".$micropayCallResult['time_end']."<br>"; } } else { $this->assign('out_trade_no',$out_trade_no); $this->display(); } }
這是我寫的控制器方法內容,對應micropay.html頁面:
<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title>微信安全支付</title> </head> <body> </br></br> <div align="center"> <form action="__SELF__" method="post"> <p>請輸入微信刷卡界面的一維碼:</p> <p><input type="text" name="auth_code" value=""></p> <button type="submit">提交</button> </form> </div> <div align="center"> <p>訂單號:<?php echo $out_trade_no; ?></p> </div> <div align="center"> <table> <td> <form action="./order_query.php" method="post"> <input name="out_trade_no" type='hidden' value="<?php echo $out_trade_no; ?>"> <button type="submit" >查詢訂單狀態</button> </form> </td> <td> <form action="./refund.php" method="post"> <input name="out_trade_no" type='hidden' value="<?php echo $out_trade_no; ?>"> <input name="refund_fee" type='hidden' value="1"> <button type="submit" >申請退款</button> </form> </td> <td> <form action="./reverse.php" method="post"> <input name="out_trade_no" type='hidden' value="<?php echo $out_trade_no; ?>"> <button type="submit" >沖正</button> </form> </td> </table> </div> <br> <div align="center"> <a href="../index.php" rel="external nofollow" >返回首頁</a> </div> </body> </html>
到此我們就可以去測試一下了
請看頁面:
頁
面中刷卡的一維碼就是你微信里面錢包下面的刷卡功能,打開后就可以看到你的一維碼,這個一維碼是過一段時間就自己刷新的,輸入進去點擊提交,請看微信頁面:
到此,刷卡支付功能也做好啦
看完了這篇文章,相信你對“ThinkPHP框架整合微信支付之刷卡模式怎么實現”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。