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
PHP filter_var() 函数 Filter 函数
Apr 25 PHP
php下获取http状态的实现代码
May 09 PHP
ThinkPHP之import方法实例详解
Jun 20 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
Sep 04 PHP
PHP实现加强版加密解密类实例
Jul 29 PHP
提交表单后 PHP获取提交内容的实现方法
May 25 PHP
PHP SFTP实现上传下载功能
Jul 26 PHP
php微信开发之关键词回复功能
Jun 13 PHP
php+redis实现消息队列功能示例
Sep 19 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 PHP
PHP扩展类型及安装方式解析
Apr 27 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
博士208HAF收音机实习报告
2021/03/02 无线电
如何把PHP转成EXE文件
2006/10/09 PHP
一个用php3编写的简单计数器
2006/10/09 PHP
php根据日期判断星座的函数分享
2014/02/13 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
DHTML 中的绝对定位
2006/11/26 Javascript
使用js获取QueryString的方法小结
2010/02/28 Javascript
JavaScript实现页面滚动图片加载(仿lazyload效果)
2011/07/22 Javascript
jquery实现图片渐变切换兼容ie6/Chrome/Firefox
2013/08/02 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
vue跨域解决方法
2017/10/15 Javascript
JavaScript或jQuery 获取option value值方法解析
2020/05/12 jQuery
Vue移动端项目实现使用手机预览调试操作
2020/07/18 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
2020/07/22 Javascript
python通过ffmgep从视频中抽帧的方法
2018/12/05 Python
通过cmd进入python的实例操作
2019/06/26 Python
python 字典 setdefault()和get()方法比较详解
2019/08/07 Python
使用python 对验证码图片进行降噪处理
2019/12/18 Python
Python无损压缩图片的示例代码
2020/08/06 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
Html5 localStorage入门教程
2018/04/26 HTML / CSS
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
荷兰游戏商店:Allyouplay
2019/03/16 全球购物
Java语言程序设计测试题判断题部分
2013/01/06 面试题
平面设计师工作职责范文
2013/12/03 职场文书
食品安全处置方案
2014/06/14 职场文书
防暑降温通知书
2015/04/27 职场文书
晶体管单管来复再生式收音机
2021/04/22 无线电
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js
浅谈什么是SpringBoot异常处理自动配置的原理
2021/06/21 Java/Android
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python