1.前台页面
$random = time() . rand(10000, 99999);
后台代码:
点击提交后进入微信扫码页面:
后台代码:
if (IS_POST) {
$body = I("request.WIDsubject");//会员充值
$total_fee = I("request.WIDtotal_fee");//分为单位(充值金额)
$out_trade_no = I("request.WIDout_trade_no");//订单编号
$product_id = 1;//固定
前台代码:
生成二维码:
<img class="erweima" src="__ROOT__/index.php/Home/User/weichat/WIDsubject/{$body}/WIDtotal_fee/{$total_fee}/WIDout_trade_no/{$out_trade_no}">
请打开微信使用扫一扫进行微信支付
处理二维码的代码:
function weixinpay($order)
{
$order['trade_type'] = 'NATIVE';
Vendor('Weixinpay.Weixinpay');
$weixinpay = new \Weixinpay();
$weixinpay->pay($order);
}
public function pay($order){
$result=$this->unifiedOrder($order);//统一下单
$decodeurl=urldecode($result['code_url']);//解码
qrcode($decodeurl);//生成二维码
}
//生成二维码
function qrcode($url, $size = 4)
{
Vendor('phpqrcode.phpqrcode');
QRcode::png($url, false, QR_ECLEVEL_L, $size, 2, false, 0xFFFFFF, 0x000000);
}
定时间隔查询订单状态(查询异步操作订单状态是否完成修改):
配置文件,配置异步回调函数:
'WEIXINPAY_CONFIG' => array(
'APPID' => 'aaa', // 微信支付APPID
'MCHID' => 'bbbb', // 微信支付MCHID 商户收款账号
'KEY' => 'cccc', // 微信支付KEY
'APPSECRET' => '', //公众帐号secert
'NOTIFY_URL' => '公网能访问到的域名/Home/Weixinpay/notify/', // 接收支付状态的连接
),
回调函数: