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中调用JAVA
Oct 09 PHP
ThinkPHP采用模块和操作分析
Apr 18 PHP
PHP基础之运算符的使用方法
Apr 28 PHP
PHP中使用TCPDF生成PDF文档实例
Jul 01 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
PHP的引用详解
Feb 22 PHP
PHP 实现类似js中alert() 提示框
Mar 18 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
Mar 19 PHP
PHP嵌套输出缓冲代码实例
May 12 PHP
PHP高精确度运算BC函数库实例详解
Aug 15 PHP
PHP有序表查找之插值查找算法示例
Feb 10 PHP
php中访问修饰符的知识点总结
Jan 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
Protoss兵种对照表
2020/03/14 星际争霸
收音机怀古---春雷3P7图片欣赏
2021/03/02 无线电
PHP三元运算符的结合性介绍
2012/01/10 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
2020/06/02 PHP
JS应用之禁止抓屏、复制、打印
2008/02/21 Javascript
js继承 Base类的源码解析
2008/12/30 Javascript
javascript Array数组对象的扩展函数代码
2010/05/22 Javascript
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
从零开始学习jQuery (二) 万能的选择器
2010/10/01 Javascript
正则表达式搭配js轻松处理json文本方便而老古
2013/02/17 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
微信小程序 swiper组件轮播图详解及实例
2016/11/16 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
React Native 通告消息竖向轮播组件的封装
2020/08/25 Javascript
vue几个常用跨域处理方式介绍
2018/02/07 Javascript
微信小程序学习笔记之文件上传、下载操作图文详解
2019/03/29 Javascript
vue自定义表单生成器form-create使用详解
2019/07/19 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
2020/04/15 Javascript
JavaScript 禁止用户保存图片的实现代码
2020/04/28 Javascript
基于Vue中的父子传值问题解决
2020/07/27 Javascript
Python实现随机生成有效手机号码及身份证功能示例
2017/06/05 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
2019/11/15 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
求职信范文英文版
2014/01/05 职场文书
银行见习期自我鉴定
2014/01/29 职场文书
四查四看剖析材料
2014/02/14 职场文书
中学生社会实践活动总结
2014/07/03 职场文书
2015年教师自我评价范文
2015/03/04 职场文书
安全学习心得体会范文
2016/01/18 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python
idea搭建可运行Servlet的Web项目
2021/06/26 Java/Android
python中__slots__节约内存的具体做法
2021/07/04 Python