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 相关文章推荐
建立动态的WML站点(一)
Oct 09 PHP
PHP4实际应用经验篇(1)
Oct 09 PHP
探讨Hessian在PHP中的使用分析
Jun 13 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 PHP
PHP临时文件的安全性分析
Jul 04 PHP
PHP实现HTTP断点续传的方法
Jun 17 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
Dec 17 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
Jul 25 PHP
php将服务端的文件读出来显示在web页面实例
Oct 31 PHP
php微信开发之音乐回复功能
Jun 14 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
Jul 17 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
May 29 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
ASP和PHP都是可以删除自身的
2007/04/09 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
页面中iframe相互传值传参
2009/12/13 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
推荐10个2014年最佳的jQuery视频插件
2014/11/12 Javascript
jQuery中children()方法用法实例
2015/01/07 Javascript
JS实现跟随鼠标闪烁转动色块的方法
2015/02/26 Javascript
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
2016/08/10 Javascript
JS实现字符串转驼峰格式的方法
2016/12/16 Javascript
ES6正则表达式的一些新功能总结
2017/05/09 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
Node.js学习之查询字符串解析querystring详解
2017/09/28 Javascript
利用Javascript开发一个二维周视图日历
2017/12/14 Javascript
JS基于递归实现网页版计算器的方法分析
2017/12/20 Javascript
总结JavaScript在IE9之前版本中内存泄露问题
2018/04/28 Javascript
详解vue移动端项目的适配(以mint-ui为例)
2018/08/17 Javascript
JS/jQuery实现简单的开关灯效果【案例】
2019/02/19 jQuery
vue中使用props传值的方法
2019/05/08 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
Vue页面跳转传递参数及接收方式
2020/09/09 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
2020/11/06 Javascript
解决Python requests 报错方法集锦
2017/03/19 Python
python数据处理实战(必看篇)
2017/06/11 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
2020/06/02 Python
基于python实现复制文件并重命名
2020/09/16 Python
详解selenium + chromedriver 被反爬的解决方法
2020/10/28 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
HTML5中的Article和Section元素认识及使用
2013/03/22 HTML / CSS
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
如何通过 CSS 写出火焰效果
2021/03/24 HTML / CSS
初一英语教学反思
2014/01/11 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
Nginx 过滤静态资源文件的访问日志的实现
2021/03/31 Servers