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中读取和写入WORD文档的代码
Apr 09 PHP
基于PHP对XML的操作详解
Jun 07 PHP
PHP的password_hash()使用实例
Mar 17 PHP
php使用str_replace实现输入框回车替换br的方法
Nov 24 PHP
C# WinForm中实现快捷键自定义设置实例
Jan 23 PHP
php读取文件内容的方法汇总
Jan 24 PHP
给WordPress中的留言加上楼层号的PHP代码实例
Dec 14 PHP
PHP获取昨天、今天及明天日期的方法
Feb 03 PHP
php好代码风格的阶段性总结
Jun 25 PHP
Yii2.0预定义的别名功能小结
Jul 04 PHP
php记录搜索引擎爬行记录的实现代码
Mar 02 PHP
thinkphp5框架实现的自定义扩展类操作示例
May 16 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 无线电
html中select语句读取mysql表中内容
2006/10/09 PHP
PHP中使用gettext来支持多语言的方法
2011/05/02 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
2016/11/05 PHP
PHP示例演示发送邮件给某个邮箱
2019/04/03 PHP
js 提交和设置表单的值
2008/12/19 Javascript
JS检测输入字符是否包含非法字符的示例代码
2014/02/11 Javascript
jQuery选择器之基本选择器与层次选择器
2015/03/03 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
2016/04/28 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
把json格式的字符串转换成javascript对象或数组的方法总结
2016/11/03 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
2017/09/12 Javascript
react 实现页面代码分割、按需加载的方法
2018/04/03 Javascript
详解VSCode配置启动Vue项目
2019/05/14 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
[52:03]Secret vs VG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python获取外网ip地址的方法总结
2015/07/02 Python
在类Unix系统上开始Python3编程入门
2015/08/20 Python
分享python数据统计的一些小技巧
2016/07/21 Python
Python实现线程状态监测简单示例
2018/03/28 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
使用OpenCV实现仿射变换—平移功能
2019/08/29 Python
Python函数中的可变长参数详解
2019/09/12 Python
python、Matlab求定积分的实现
2019/11/20 Python
基于python SMTP实现自动发送邮件教程解析
2020/06/02 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
20年同学聚会感言
2014/02/03 职场文书
法律系毕业生自荐信范文
2014/03/27 职场文书
公司股份合作协议书
2014/12/07 职场文书
2015年团支书工作总结
2015/04/03 职场文书
Jupyter notebook 更改文件打开的默认路径操作
2021/05/21 Python
MySQL基于索引的压力测试的实现
2021/11/07 MySQL
Redis 异步机制
2022/05/15 Redis