经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » PHP » 查看文章
Thinkphp5整合微信扫码支付开发实例
来源:cnblogs  作者:haohuier  时间:2018/10/9 10:11:50  对本文有异议

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

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

  1. public function index() {
  2. $wechat = new Wechat();
  3. $data['order'] = date('Ymd') . substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8); //订单号
  4. $data['set'] = "测试";
  5. $data['money'] = 0.01;
  6. $data['userid'] = 1;
  7. if (!Db::execute('INSERT INTO order_sucaihuo(uid,order_no,order_money,addtime) VALUES(?,?,?,?)', [$data['userid'], $data['order'], $data['money'], time()])) {
  8. return '失败,请重试!';
  9. }
  10. $url = $wechat->send($data);
  11. $data['url'] = 'http://paysdk.weixin.qq.com/example/qrcode.php?data=' . $url;
  12. // return '<img alt="模式二扫码支付" src="http://paysdk.weixin.qq.com/example/qrcode.php?data='.$url.'" style="width:150px;height:150px;"/>';
  13. return view('index', $data);
  14. }

回调验证并更改订单状态

  1. if ($WeChatNotify->notify($xml) == true) {
  2. file_put_contents('./time.txt', date("Y-m-d H:i:s"));
  3. //$WeChatNotify->getValues() 获取到xml转换为数组的键值对
  4. //out_trade_no对应的商户订单号
  5. //total_fee为订单金额的一百的倍数 也就是total_fee/100为支付的金额
  6. //还有几个键值对需要用的话可以打印出来看 都是微信官方定义的
  7. $data = $WeChatNotify->getValues();
  8. file_put_contents('./data.txt', json_encode($data));
  9. if (empty($data) || empty($data['out_trade_no']) || empty($data['total_fee'])) {
  10. return;
  11. }
  12. $orderData = Db::query("SELECT * FROM order_sucaihuo WHERE order_no='" . $data['out_trade_no'] . "' AND state=0");
  13. if (empty($orderData)) {
  14. return;
  15. }
  16. $orderData = $orderData[0];
  17. if ($orderData['order_money'] != $data['total_fee'] / 100) {
  18. return;
  19. }
  20. $orderResult = Db::execute("UPDATE order_sucaihuo SET state=1,update_time=" . time() . "");
  21. if (!$orderResult) {
  22. return;
  23. }
  24. return "SUCCESS";
  25. }

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号