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";
        }

原文地址:https://www.cnblogs.com/haohuier/p/9752683.html

时间: 2024-10-07 22:01:13

Thinkphp5整合微信扫码支付开发实例的相关文章

thinkphp5.0 微信扫码支付模式二

仅供个人参考,方便大家. 一.1)https://pay.weixin.qq.com/index.php/core/home/login  复制此地址 打开微信商户平台. 2)下载安全操作证书(最好在IE下载): 3)安装后的界面 4)下载证书 5)设置32位秘钥(百度秘钥生成可在线生成): 二.1)https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=11_1  打开此链接下载SDK. 2) 下载后的目录结构 3)在thinkphp

ThinkPHP5微信扫码支付

1.把微信官网下载的demo放在根目录/vendor/目录下,这里我的是/vendor/wxpay_pc目录 2.把cert里面的文件替换成自己项目的证书(登陆微信商户平台,账户中心,API安全下载) 3.把/wxpay_pc/lib目录下的WxPay.Config.php文件里的信息改成自己的信息,只需改以下四个就行: 3.把example/目录下的notify.php改名为PayNotifyCallBack.php  不改也没事,我是为了和该文件里的类名保持一致 4.把里面require_o

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

一款PHP原生代码写的微信扫码支付,不基于任何框架,完全手写. 扫码支付只要授权域名对就OK,本地是无法测试.跟openid也没有关系,所以跟支付授权目录页没关系. 微信商户信息配置地址:weixinpay\lib\WxPay.Config.php 第25行 1 const APPID = 'wx422126b0b6bbfcfc'; // 绑定支付的APPID(必须配置,开户邮件中可查看) 2 const MCHID = '1349825901'; // 商户号(必须配置,开户邮件中可查看) 3

微信开发笔记:微信扫码支付详解

作为一个PC端的在线购物类网站,具备微信支付的功能自然是必须要有的,那么我们就来详细的看一下微信支付平台提供的微信扫码支付的使用流程: 首先你必须要有一个完成认证的服务号,申请开通微信支付功能,我们可以获得appid 和mch_id (也称为partnerid),之后就会是一个向微信支付平台提交一个支付请求来换取一个支付链接的过程: class wxpay{ function __construct(){ $this->wxpay(); } function wxpay(){ } /** * 生

.NET MVC结构框架下的微信扫码支付模式二 API接口开发测试

直接上干货 ,我们的宗旨就是为人民服务.授人以鱼不如授人以渔.不吹毛求疵.不浮夸.不虚伪.不忽悠.一切都是为了社会共同进步,繁荣昌盛,小程序猿.大程序猿.老程序猿还是嫩程序猿,希望这个社会不要太急功近利 ,希望每个IT行业的BOSS要有良知,程序猿的青春年华都是无私默默奉献,都是拿命拼出来了现在的成就,如果卸磨杀驴,如果逼良为娼,请MM你的良心对得起你爹妈吗,你也有家,你也有小孩,你也有父母的. 在这里致敬程序猿, 致敬我们的攻城狮,致敬我们最可爱的人! 珍惜生命,换种活法也是依然精彩. Vie

JAVA微信扫码支付模式二功能实现以及回调

一.准备工作 首先吐槽一下微信关于支付这块,本身支持的支付模式就好几种,但是官方文档特别零散,连像样的JAVA相关的demo也没几个.本人之前没有搞过微信支付,一开始真是被它搞晕,折腾两天终于调通了,特此写下来,以享后人吧! 关于准备工作,就"微信扫码支付模式二"官方文档地址在这 https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1 可以先看看,实际上需要准备的东西有以下几个: 其中APP_ID和APP_SECRET

微信扫码支付官方配置

微信扫码支付官方API: https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1 .net C# SDK: https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=11_1 介绍扫码支付模式一: 首先要配置:微信公众平台>微信支付>开发配置 支付授权目录:就是项目中存放官方SDK的运行路径.例如:http://www.xxxx.com/Wx/或者http://www.

C# 微信扫码支付API (微信扫码支付模式二)

一.SDK下载地址:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=11_1,下载.NET C#版本: 二.微信相关设置:(微信扫码支付模式二) 1. 公众账号ID,公众账号secert ,地址:https://mp.weixin.qq.com/ 2. 商户号,商户支付密钥KEY,商户平台地址:https://pay.weixin.qq.com/ 5. 部署的服务器终端ip及回调页面 (1)部署的服务器终端ip:即程序部署所在的

java微信扫码支付(模式二)

微信扫码支付——模式二 代码: PayCommonUtil.java  微信支付常用方法 1 import java.text.SimpleDateFormat; 2 import java.util.Date; 3 import java.util.Iterator; 4 import java.util.Map; 5 import java.util.Set; 6 import java.util.SortedMap; 7 8 public class PayCommonUtil 9 { 1