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作的文本留言本的例子(五)
Oct 09 PHP
用PHP获取Google AJAX Search API 数据的代码
Mar 12 PHP
解析用PHP实现var_export的详细介绍
Jun 20 PHP
PHP中的str_repeat函数在JavaScript中的实现
Sep 16 PHP
php 判断是否是中文/英文/数字示例代码
Sep 30 PHP
php 中文字符串首字母的获取函数分享
Nov 04 PHP
smarty模板局部缓存方法使用示例
Jun 17 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
Jul 05 PHP
PHP实现PDO的mysql数据库操作类
Dec 12 PHP
PHP性能分析工具XHProf安装使用教程
May 13 PHP
Symfony2创建页面实例详解
Mar 18 PHP
Laravel手动分页实现方法详解
Oct 09 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 Mysql类 可以参考学习熟悉下
2009/06/21 PHP
浅谈Eclipse PDT调试PHP程序
2014/06/09 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
PHP Web表单生成器案例分析
2020/06/02 PHP
jQuery 处理表单元素的代码
2010/02/15 Javascript
js post方式传递提交的实现代码
2010/05/31 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
2013/01/25 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
2016/05/09 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
2016/11/18 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
2018/03/21 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
2019/02/20 Javascript
简单文件操作python 修改文件指定行的方法
2013/05/15 Python
详解Python中for循环的使用方法
2015/05/14 Python
Python中import机制详解
2017/11/14 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
详解tensorflow载入数据的三种方式
2018/04/24 Python
python删除文本中行数标签的方法
2018/05/31 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
浅析Python pandas模块输出每行中间省略号问题
2018/07/03 Python
PyQt4编程之让状态栏显示信息的方法
2019/06/18 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
2020/07/28 Python
python3跳出一个循环的实例操作
2020/08/18 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
大客户销售经理职责
2013/12/04 职场文书
护士毕业生自我鉴定
2014/02/08 职场文书
学校食品安全实施方案
2014/06/14 职场文书
优秀护士事迹材料
2014/12/25 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
Django 实现jwt认证的示例
2021/04/30 Python
详解JS ES6编码规范
2021/05/07 Javascript
php实例化对象的实例方法
2021/11/17 PHP
人工智能深度学习OpenAI baselines的使用方法
2022/05/20 Python