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 相关文章推荐
构建简单的Webmail系统
Oct 09 PHP
php判断是否为json格式的方法
Mar 04 PHP
浅析PHP微信支付通知的处理方式
May 25 PHP
php使用递归计算文件夹大小
Dec 24 PHP
利用PHP绘图函数实现简单验证码功能的方法
Oct 18 PHP
php图形jpgraph操作实例分析
Feb 22 PHP
yii2 commands模式以及配置crontab定时任务的方法
Aug 19 PHP
PHP实现的简单对称加密与解密方法实例小结
Aug 28 PHP
PHP单例模式模拟Java Bean实现方法示例
Dec 07 PHP
PHP连接及操作PostgreSQL数据库的方法详解
Jan 30 PHP
PHP MVC框架中类的自动加载机制实例分析
Sep 18 PHP
ThinkPHP 5.1 跨域配置方法
Oct 11 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
服务器端解压缩zip的脚本
2006/12/22 PHP
php中解析带中文字符的url函数分享
2015/01/20 PHP
PHP保存带BOM文件的方法
2015/02/12 PHP
JS中style属性
2006/10/11 Javascript
JQuery 无废话系列教程(一) jquery入门 [推荐]
2009/06/23 Javascript
javascript Array.sort() 跨浏览器下需要考虑的问题
2009/12/07 Javascript
解析JSON对象与字符串之间的相互转换
2013/12/18 Javascript
javascript使用定时函数实现跳转到某个页面
2013/12/25 Javascript
js如何获取object类型里的键值
2014/02/18 Javascript
在JavaScript中处理数组之reverse()方法的使用
2015/06/09 Javascript
JavaScript知识点整理
2015/12/09 Javascript
AngularJS中的过滤器filter用法完全解析
2016/04/22 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
layui表格内放置图片,并点击放大的实例
2019/09/10 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
2020/01/16 jQuery
ES6如何用一句代码实现函数的柯里化
2020/01/18 Javascript
[01:02:48]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Liquid
2018/04/03 DOTA
python设置检查点简单实现代码
2014/07/01 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
详解使用python的logging模块在stdout输出的两种方法
2017/05/17 Python
详解多线程Django程序耗尽数据库连接的问题
2018/10/08 Python
不知道这5种下划线的含义,你就不算真的会Python!
2018/10/09 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
python打造爬虫代理池过程解析
2019/08/15 Python
python retrying模块的使用方法详解
2019/09/25 Python
Python模块 _winreg操作注册表
2020/02/05 Python
django-csrf使用和禁用方式
2020/03/13 Python
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
Hotels.com泰国:酒店预订网站
2019/11/20 全球购物
清洁工岗位职责
2014/01/29 职场文书
郭明义观后感
2015/06/08 职场文书
2015毕业设计工作总结
2015/07/24 职场文书
vue使用v-model进行跨组件绑定的基本实现方法
2021/04/28 Vue.js
PHP遍历数组的6种方式总结
2021/11/17 PHP