thinkPHP和onethink微信支付插件分享


Posted in PHP onAugust 11, 2019

thinkPHP和微支付实现的微信支付插件,在微信中调用微信jssdk实现支付,分享给大家参考下

//实现的Wxpay钩子方法
    public function Wxpay($param){
      require './Addons/Wxpay/WxPayPubHelper/WxPayPubHelper.php';
      $jsApi = new \JsApi_pub(); 
      
      //=========步骤1:网页授权获取用户openid============
      if (!isset($_GET['code']))
      {
        //触发微信返回code码
        $url = $jsApi->createOauthUrlForCode(\WxPayConf_pub::JS_API_CALL_URL.'/order_id/'.$param['order_id']);
        Header("Location: $url");
      }else
      {
        $order_id = $param['order_id'];
        $info = M('Order')->where('id='.$order_id)->find();
        if(empty($info) || $info['is_pay'] == 1){
          dump('该订单不存在或已支付'.$order_id);
          exit();
        }
        $this->assign('info',$info);
        $a = $info['money'];
        $b = 100;
        $c = $a * $b;
        
        //获取code码,以获取openid
        $code = $_GET['code'];
        $jsApi->setCode($code);
        $openid = $jsApi->getOpenId();
      }
       
      //=========步骤2:使用统一支付接口,获取prepay_id============
      //使用统一支付接口
      $unifiedOrder = new \UnifiedOrder_pub();
       
      $unifiedOrder->setParameter("openid","$openid");//商品描述
      $unifiedOrder->setParameter("body","在线预订");//商品描述
      //自定义订单号,此处仅作举例
      $timeStamp = time();
//       $out_trade_no = \WxPayConf_pub::APPID."$timeStamp";
      $out_trade_no = $info['ordersn'];
      $unifiedOrder->setParameter("out_trade_no","$out_trade_no");//商户订单号
      $unifiedOrder->setParameter("total_fee","$c");//总金额
      $unifiedOrder->setParameter("notify_url",\WxPayConf_pub::NOTIFY_URL.'/order_id/'.$param['order_id']);//通知地址
      $unifiedOrder->setParameter("trade_type","JSAPI");//交易类型
       
      $prepay_id = $unifiedOrder->getPrepayId();
      //=========步骤3:使用jsapi调起支付============
      $jsApi->setPrepayId($prepay_id);
      $jsApiParameters = $jsApi->getParameters();
      $this->assign('jsApiParameters',$jsApiParameters);
 
      $this->display('pay');
    }

总结

以上是三水点靠木为你收集整理的thinkPHP和onethink微支付插件全部内容,希望文章能够帮你解决thinkPHP和onethink微支付插件所遇到的程序开发问题。

PHP 相关文章推荐
php模拟socket一次连接,多次发送数据的实现代码
Jul 26 PHP
PHP 时间日期操作实战
Aug 26 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
Dec 25 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
Jun 19 PHP
php的sso单点登录实现方法
Jan 08 PHP
laravel安装zend opcache加速器教程
Mar 02 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
Dec 14 PHP
使用php+swoole对client数据实时更新(一)
Jan 07 PHP
php array_keys 返回数组的键名
Oct 25 PHP
PHP获取当前执行php文件名的代码
Mar 02 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
Nov 10 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
Aug 09 #PHP
PHP实现提高SESSION响应速度的几种方法详解
Aug 09 #PHP
php tpl模板引擎定义与使用示例
Aug 09 #PHP
php函数式编程简单示例
Aug 08 #PHP
因str_replace导致的注入问题总结
Aug 08 #PHP
PHP goto语句用法实例
Aug 06 #PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
Aug 06 #PHP
You might like
php 遍历数据表数据并列表横向排列的代码
2009/09/05 PHP
FirePHP 推荐一款PHP调试工具
2011/04/23 PHP
php不允许用户提交空表单(php空值判断)
2013/11/12 PHP
PHP Session机制简介及用法
2014/08/19 PHP
php使用Jpgraph绘制柱形图的方法
2015/06/10 PHP
PHP魔术方法的使用示例
2015/06/23 PHP
深入解析PHP的Yii框架中的缓存功能
2016/03/29 PHP
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
JS delegate与live浅析
2013/12/21 Javascript
jQuery中ajax的load()方法用法实例
2014/12/26 Javascript
JavaScript组件开发完整示例
2015/12/15 Javascript
使用AJAX实现Web页面进度条的实例分享
2016/05/06 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
使用canvas及js简单生成验证码方法
2017/04/02 Javascript
详解nodejs微信公众号开发——5.素材管理接口
2017/04/11 NodeJs
在Swiper内如何制作CSS3动画效果示例代码
2017/12/07 Javascript
python XlsxWriter模块创建aexcel表格的实例讲解
2018/05/03 Python
pandas 数据结构之Series的使用方法
2019/06/21 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
Python figure参数及subplot子图绘制代码
2020/04/18 Python
使用python实现微信小程序自动签到功能
2020/04/27 Python
美国最灵活的移动提供商:Tello
2017/07/18 全球购物
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
利用指针变量实现队列的入队操作
2012/04/07 面试题
Ruby如何创建一个线程
2013/03/10 面试题
军训考核自我鉴定
2014/02/13 职场文书
经典公益广告词
2014/03/13 职场文书
应届毕业生自荐书
2014/06/18 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
初中班主任工作总结2015
2015/05/13 职场文书
复兴之路观后感3000字
2015/06/02 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书
聊聊基于pytorch实现Resnet对本地数据集的训练问题
2022/03/25 Python
GoFrame gredis缓存DoVar Conn连接对象 自动序列化GoFrame gredisDo/DoVar方法Conn连接对象自动序列化/反序列化总结
2022/06/14 Golang