新聞中心
在開發(fā)平臺或者商城項目中需要微信支付或支付寶,網(wǎng)銀支付,大家都知道微信只能掃碼,或者在手機上打開頁面進行支付,所以在這里我們主要使用微信掃碼支付,來解決PC網(wǎng)站使用微信支付的問題

成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計、成都做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)澤庫,10余年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
下載官方DEMO https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=11_1
把 lib 文件夾拿出來,放到tp5根目錄 vendor 文件夾下,重命名為wxpay:
把 example 文件夾下的 WxPay.Config.php 拿出來,放到wxpay目錄下,修改require_once,并配置支付參數(shù):
修改 WxPay.Api.php 第二個require_once:
require_once "WxPay.Config.php";
Wxpay控制器
SetBody($goods_name);
$input->SetAttach($goods_name);
$input->SetOut_trade_no($out_trade_no);
$input->SetTotal_fee($paymoney*100);//金額乘以100
$input->SetTime_start(date("YmdHis"));
$input->SetTime_expire(date("YmdHis", time() + 600));
$input->SetGoods_tag("test");
$input->SetNotify_url("http://www.xxx.com/wxpaynotify"); //回調(diào)地址
$input->SetTrade_type("NATIVE");
$input->SetProduct_id("123456789");//商品id
$result = \WxPayApi::unifiedOrder($config, $input);
if($result['result_code']=='SUCCESS' && $result['return_code']=='SUCCESS') {
$url = $result["code_url"];
$this->assign('url',$url);
}else{
$this->error('參數(shù)錯誤');
}
return view();
}
}
支付回調(diào)
public function wxpaynotify() {
// 獲取微信回調(diào)的數(shù)據(jù)
$notifiedData = file_get_contents('php://input');
//XML格式轉(zhuǎn)換
$xmlObj = simplexml_load_string($notifiedData, 'SimpleXMLElement', LIBXML_NOCDATA);
$xmlObj = json_decode(json_encode($xmlObj), true);
//支付成功
if ($xmlObj['return_code'] == "SUCCESS" && $xmlObj['result_code'] == "SUCCESS") {
foreach ($xmlObj as $k => $v) {
if ($k == 'sign') {
$xmlSign = $xmlObj[$k];
unset($xmlObj[$k]);
};
}
$sign = $this->WxSign($xmlObj);
if ($sign === $xmlSign) {
$trade_no = $xmlObj['out_trade_no']; //商戶自定義訂單號
$transaction_id = $xmlObj['transaction_id']; //微信交易單號
//省略訂單處理邏輯...
//返回成功標識給微信
return sprintf(" ");
}
}
}
//微信簽名算法
private function WxSign($param)
{
$signkey = 'xxx';//秘鑰
$sign = '';
foreach ($param as $key => $val) {
$sign .= $key . '=' . $val . '&';
}
$sign .= 'key=' . $signkey;
$sign = strtoupper(MD5($sign));
return $sign;
}
前臺要生成掃碼支付的二維碼。把demo中 example 文件夾下的 phpqrcode文件夾 和 qrcode.php 拿出來,放到項目根目錄/public下面:
然后頁面中使用img標簽加載二維碼即可:

文章題目:ThinkPHP5.0集成微信掃碼支付
當(dāng)前地址:http://fisionsoft.com.cn/article/cdecdje.html


咨詢
建站咨詢
