Thinkphp5框架集成微信扫码支付方法,Thinkphp框架用的人非常多,整合微信扫码支付的方法分享出来与大家一起学习!


打开首页生成订单,并显示支付二维码

publicfunctionindex(){$wechat=newWechat();$data['order']=date('Ymd').substr(implode(NULL,array_map('ord',str_split(substr(uniqid(),7,13),1))),0,8);//订单号$data['set']="测试";$data['money']=0.01;$data['userid']=1;if(!Db::execute('INSERTINTOorder_sucaihuo(uid,order_no,order_money,addtime)VALUES(?,?,?,?)',[$data['userid'],$data['order'],$data['money'],time()])){return'失败,请重试!';}$url=$wechat->send($data);$data['url']='http://paysdk.weixin.qq.com/example/qrcode.php?data='.$url;//return'<imgalt="模式二扫码支付"src="http://paysdk.weixin.qq.com/example/qrcode.php?data='.$url.'"style="width:150px;height:150px;"/>';returnview('index',$data);}


回调验证并更改订单状态

if($WeChatNotify->notify($xml)==true){file_put_contents('./time.txt',date("Y-m-dH:i:s"));//$WeChatNotify->getValues()获取到xml转换为数组的键值对//out_trade_no对应的商户订单号//total_fee为订单金额的一百的倍数也就是total_fee/100为支付的金额//还有几个键值对需要用的话可以打印出来看都是微信官方定义的$data=$WeChatNotify->getValues();file_put_contents('./data.txt',json_encode($data));if(empty($data)||empty($data['out_trade_no'])||empty($data['total_fee'])){return;}$orderData=Db::query("SELECT*FROMorder_sucaihuoWHEREorder_no='".$data['out_trade_no']."'ANDstate=0");if(empty($orderData)){return;}$orderData=$orderData[0];if($orderData['order_money']!=$data['total_fee']/100){return;}$orderResult=Db::execute("UPDATEorder_sucaihuoSETstate=1,update_time=".time()."");if(!$orderResult){return;}return"SUCCESS";}

欢迎转载,但请注明出处:http://www.sucaihuo.com/php/3261.html