Thinkphp5整合微信扫码支付开发实例

Posted haohuier

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Thinkphp5整合微信扫码支付开发实例相关的知识,希望对你有一定的参考价值。

Thinkphp框架是比较多人用的,曾经做过的一个Thinkphp5整合微信扫码支付开发实例,分享出来大家一起学习

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

public function index() { 
        $wechat = new Wechat(); 
        $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(\'INSERT INTO order_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 \'<img alt="模式二扫码支付" src="http://paysdk.weixin.qq.com/example/qrcode.php?data=\'.$url.\'" style="width:150px;height:150px;"/>\'; 
        return view(\'index\', $data); 
    }

回调验证并更改订单状态

if ($WeChatNotify->notify($xml) == true) { 
            file_put_contents(\'./time.txt\', date("Y-m-d H: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 * FROM order_sucaihuo WHERE order_no=\'" . $data[\'out_trade_no\'] . "\' AND state=0"); 
            if (empty($orderData)) { 
                return; 
            } 
            $orderData = $orderData[0]; 
            if ($orderData[\'order_money\'] != $data[\'total_fee\'] / 100) { 
                return; 
            } 
            $orderResult = Db::execute("UPDATE order_sucaihuo SET state=1,update_time=" . time() . ""); 
            if (!$orderResult) { 
                return; 
            } 
            return "SUCCESS"; 
        }

 

以上是关于Thinkphp5整合微信扫码支付开发实例的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp整合系列之微信扫码支付

PHP原生代码写的微信扫码支付实例

毕设手把手教学微信扫码支付入门开发

微信:微信扫码支付调用统一下单接口网站支付 + springmvc

微信:微信扫码支付调用统一下单接口网站支付 + springmvc

微信扫码支付视频课程(Java版)