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 session常见问题集锦及解决办法总结
Mar 18 PHP
一些php技巧与注意事项分析
Feb 03 PHP
PHP下通过file_get_contents的代理使用方法
Feb 16 PHP
php 函数中使用static的说明
Jun 01 PHP
基于PHP 面向对象之成员方法详解
May 04 PHP
获取PHP警告错误信息的解决方法
Jun 03 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
Jun 19 PHP
php实现最简单的MVC框架实例教程
Sep 08 PHP
php实现的CSS更新类实例
Sep 22 PHP
PHP调用.NET的WebService 简单实例
Mar 27 PHP
php自定义函数转换html标签示例
Sep 29 PHP
PHP PDOStatement::execute讲解
Jan 31 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
是否存在第一台收音机的说法
2021/03/01 无线电
我用php+mysql写的留言本
2006/10/09 PHP
使用php来实现网络服务
2009/09/15 PHP
PHP 文件缓存的性能测试
2010/04/25 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
2013/06/27 PHP
使用PHP实现微信摇一摇周边红包
2016/01/04 PHP
js判断浏览器的比较全的代码
2007/02/13 Javascript
Packer 3.0 JS压缩及混淆工具 下载
2007/05/03 Javascript
比较搞笑的js陷阱题
2010/02/07 Javascript
jQueryPad 实用的jQuery测试工具(支持IE,chrome,FF)
2010/05/22 Javascript
js中格式化日期时间型数据函数代码
2010/11/08 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
2013/11/13 Javascript
JS动态添加Table的TR,TD实现方法
2015/01/28 Javascript
jquery图片切换插件
2015/03/16 Javascript
js精美的幻灯片画集特效代码分享
2015/08/29 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
在vue中根据光标的显示与消失实现下拉列表
2019/09/29 Javascript
vue实现在v-html的html字符串中绑定事件
2019/10/28 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
2019/11/01 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
[19:26]TNC vs EG (BO3)
2018/06/07 DOTA
《与孩子一起学编程》python自测题
2018/05/27 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
2019/08/27 Python
python3.8 微信发送服务器监控报警消息代码实现
2019/11/05 Python
安装Anaconda3及使用Jupyter的方法
2020/10/27 Python
谈一谈HTML5本地存储技术
2016/03/02 HTML / CSS
2014幼儿园保育员工作总结
2014/11/10 职场文书
大学生毕业评语
2014/12/31 职场文书
故意伤害罪辩护词
2015/05/21 职场文书
西柏坡观后感
2015/06/08 职场文书
JS Object构造函数之Object.freeze
2021/04/28 Javascript
了解Redis常见应用场景
2021/06/23 Redis
Tomcat执行startup.bat出现闪退的原因及解决办法
2022/04/20 Servers