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:风雨欲来 路在何方?
Oct 09 PHP
sqlyog 中文乱码问题的设置方法
Oct 19 PHP
一些php技巧与注意事项分析
Feb 03 PHP
PHP 第一节 php简介
Apr 28 PHP
解析centos中Apache、php、mysql 默认安装路径
Jun 25 PHP
PHP中的str_repeat函数在JavaScript中的实现
Sep 16 PHP
php实现无限级分类查询(递归、非递归)
Mar 10 PHP
PHP5.5迭代生成器用法实例详解
Mar 16 PHP
php提交过来的数据生成为txt文件
Apr 28 PHP
php readfile下载大文件失败的解决方法
May 22 PHP
PHP的简单跳转提示的实现详解
Mar 14 PHP
详解Laravel服务容器的绑定与解析
Nov 05 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
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
php 过滤英文标点符号及过滤中文标点符号代码
2014/06/12 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
php生成curl命令行的方法
2015/12/14 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
一个支付页面DEMO附截图
2014/07/22 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
2015/08/01 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
2016/05/30 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
微信小程序按顺序同步执行的两种方式
2019/12/20 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
Python实现的石头剪子布代码分享
2014/08/22 Python
python opencv之SIFT算法示例
2018/02/24 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
Python函数参数匹配模型通用规则keyword-only参数详解
2019/06/10 Python
Python 操作 ElasticSearch的完整代码
2019/08/04 Python
python基于TCP实现的文件下载器功能案例
2019/12/10 Python
基于Python计算圆周率pi代码实例
2020/03/25 Python
OPPO手机官方商城:中国手机市场出货量第一品牌
2017/10/18 全球购物
TobyDeals美国:在电子产品上获得最好的优惠和折扣
2019/08/11 全球购物
盛大笔试题
2016/11/05 面试题
实习生个人的自我评价
2013/12/08 职场文书
标准自荐信范文
2014/01/29 职场文书
青年文明号创建承诺
2014/03/31 职场文书
优秀团员自我评价范文
2014/04/23 职场文书
十八大标语口号
2014/10/09 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书
python绘图subplots函数使用模板的示例代码
2021/04/30 Python
10大幻兽系恶魔果实 蝙蝠果实上榜,第一自愈能力强
2022/03/18 日漫
《雀魂PONG☆》4月1日播出 PV角色设定情报
2022/03/20 日漫
Java 超详细讲解数据结构中的堆的应用
2022/04/02 Java/Android
Java8利用Stream对列表进行去除重复的方法详解
2022/04/14 Java/Android