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脚本的10个技巧(7)
Oct 09 PHP
php获取mysql版本的几种方法小结
Mar 25 PHP
PHP中替换换行符的几种方法小结
Oct 15 PHP
php获取新浪微博数据API实例
Nov 12 PHP
php中return的用法实例分析
Feb 28 PHP
PHP简单生成缩略图相册的方法
Jul 29 PHP
thinkphp制作404跳转页的简单实现方法
Sep 22 PHP
详解php中空字符串和0之间的关系
Oct 23 PHP
PHP精确计算功能示例
Nov 29 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
Jan 17 PHP
Laravel推荐使用的十个辅助函数
May 10 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
Sep 30 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分页函数
2006/10/09 PHP
无数据库的详细域名查询程序PHP版(1)
2006/10/09 PHP
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
2009/10/29 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
php获取数据库中数据的实现方法
2017/06/01 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
thinkPHP框架乐观锁和悲观锁实例分析
2019/10/30 PHP
在线游戏大家来找茬II
2006/09/30 Javascript
表单提交时自动复制内容到剪贴板的js代码
2007/03/16 Javascript
JQuery选择器、过滤器大整理
2015/05/26 Javascript
JavaScript自学笔记(必看篇)
2016/06/23 Javascript
如何检测JavaScript的各种类型
2016/07/30 Javascript
fullPage.js和CSS3实现全屏滚动效果
2017/05/05 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
VeeValidate 的使用场景以及配置详解
2019/01/11 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
2019/06/03 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
python实现银行管理系统
2019/10/25 Python
关于tf.TFRecordReader()函数的用法解析
2020/02/17 Python
python语音识别指南终极版(有这一篇足矣)
2020/09/09 Python
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
大一新生学期自我评价
2014/04/09 职场文书
淘宝店策划方案
2014/06/07 职场文书
户籍证明格式
2014/09/15 职场文书
优秀教师单行材料
2014/12/16 职场文书
实习科室评语
2015/01/04 职场文书
客房部经理岗位职责
2015/02/02 职场文书
小学运动会报道稿
2015/07/22 职场文书
MySQL基础(一)
2021/04/05 MySQL
MySQL 如何分析查询性能
2021/05/12 MySQL
php双向队列实例讲解
2021/11/17 PHP
Windows Server 2019 域控制器安装图文教程
2022/04/28 Servers
Java Redisson多策略注解限流
2022/09/23 Java/Android