Thinkphp和onethink实现微信支付插件


Posted in PHP onApril 13, 2016

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');
    }

以上就是本文的全部内容,希望对大家学习PHP程序设计有所帮助。

PHP 相关文章推荐
php 中的str_replace 函数总结
Apr 27 PHP
MySQL授权问题总结
May 06 PHP
PHP file_get_contents 函数超时的几种解决方法
Jul 30 PHP
php中显示数组与对象的实现代码
Apr 18 PHP
PHP中加密解密函数与DES加密解密实例
Oct 17 PHP
smarty模板引擎基础知识入门
Mar 30 PHP
php计算多维数组中所有值总和的方法
Jun 24 PHP
微信公众号开发之语音消息识别php代码
Aug 08 PHP
php生成二维码图片方法汇总
Dec 17 PHP
PHP 中常量的知识整理
Apr 14 PHP
PHP利用Socket获取网站的SSL证书与公钥
Jun 18 PHP
php二维数组按某个键值排序的实例讲解
Feb 15 PHP
PHP MSSQL 分页实例
Apr 13 #PHP
php构造方法中析构方法在继承中的表现
Apr 12 #PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
Apr 12 #PHP
ThinkPHP框架里隐藏index.php
Apr 12 #PHP
PHP 绘制网站登录首页图片验证码
Apr 12 #PHP
PHP中Restful api 错误提示返回值实现思路
Apr 12 #PHP
PHP给文字内容中的关键字进行套红处理
Apr 12 #PHP
You might like
在PHP中使用灵巧的体系结构
2006/10/09 PHP
php的hash算法介绍
2014/02/13 PHP
ThinkPHP中的关联模型注意点
2014/06/16 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
2009/04/24 Javascript
jQuery Ajax文件上传(php)
2009/06/16 Javascript
javascript静态页面传值的三种方法分享
2013/11/12 Javascript
nodejs通过phantomjs实现下载网页
2015/05/04 NodeJs
swtich/if...else的替代语句
2015/08/16 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
2015/09/27 Javascript
vue.js实现简单轮播图效果
2017/10/10 Javascript
Vue全家桶实践项目总结(推荐)
2017/11/04 Javascript
详解Vue路由钩子及应用场景(小结)
2017/11/07 Javascript
JS抛物线动画实例制作
2018/02/24 Javascript
python练习程序批量修改文件名
2014/01/16 Python
在Linux上安装Python的Flask框架和创建第一个app实例的教程
2015/03/30 Python
python读取txt文件,去掉空格计算每行长度的方法
2018/12/20 Python
使用TensorFlow-Slim进行图像分类的实现
2019/12/31 Python
pytorch 模拟关系拟合——回归实例
2020/01/14 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
2020/02/20 Python
解决jupyter notebook 出现In[*]的问题
2020/04/13 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
python根据字典的键来删除元素的方法
2020/08/16 Python
Python selenium实现断言3种方法解析
2020/09/08 Python
Python之qq自动发消息的示例代码
2021/02/18 Python
阿迪达斯德国官方网站:adidas德国
2017/07/12 全球购物
英国最大的经认证的有机超市:Planet Organic
2018/02/02 全球购物
运动服饰每月订阅盒:Ellie
2018/04/29 全球购物
Linux Interview Questions For software testers
2012/06/02 面试题
高三毕业寄语
2014/04/10 职场文书
档案工作个人总结
2015/03/03 职场文书
鲁滨逊漂流记读书笔记
2015/06/26 职场文书
2019假期福利管理制度!
2019/07/15 职场文书
Nginx设置日志打印post请求参数的方法
2021/03/31 Servers
redis三种高可用方式部署的实现
2021/05/11 Redis
Nginx开源可视化配置工具NginxConfig使用教程
2022/06/21 Servers