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 相关文章推荐
PHP5中MVC结构学习
Oct 09 PHP
php 向访客和爬虫显示不同的内容
Nov 09 PHP
php注销代码(session注销)
May 31 PHP
PHP数组循环操作详细介绍 附实例代码
Feb 03 PHP
php使用curl和正则表达式抓取网页数据示例
Apr 13 PHP
Yii 快速,安全,专业的PHP框架
Sep 03 PHP
PHP异常处理浅析
May 12 PHP
PHP简单获取及判断提交来源的方法
Apr 22 PHP
PHP导出带样式的Excel示例代码
Aug 28 PHP
php使用file函数、fseek函数读取大文件效率对比分析
Nov 04 PHP
PHP实现的文件操作类及文件下载功能示例
Dec 24 PHP
yii2学习教程之5种内置行为类详解
Aug 03 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
牡丹941资料
2021/03/01 无线电
PHP生成静态页
2006/11/25 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
php导出生成word的方法
2015/12/25 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
AJAX跨域请求json数据的实现方法
2013/11/11 Javascript
纯css+js写的一个简单的tab标签页带样式
2014/01/28 Javascript
浅析tr的隐藏和显示问题
2014/03/05 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
JS实现OCX控件的事件响应示例
2014/09/17 Javascript
使用C++为node.js写扩展模块
2015/04/22 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
jquery简单实现网页层的展开与收缩效果
2015/08/07 Javascript
全面解析Bootstrap手风琴效果
2020/04/17 Javascript
Node.js模块全局安装路径配置方法
2018/05/17 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
[43:32]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第一场
2014/05/26 DOTA
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
分析python动态规划的递归、非递归实现
2018/03/04 Python
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
Django模板Templates使用方法详解
2019/07/19 Python
python设计tcp数据包协议类的例子
2019/07/23 Python
通过代码实例了解Python sys模块
2020/09/14 Python
外语系毕业生自荐信范文
2013/12/16 职场文书
红领巾心向党广播稿
2014/01/19 职场文书
办公室人员先进事迹
2014/01/27 职场文书
小学英语教学反思
2014/01/30 职场文书
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
单位承诺书格式
2014/05/21 职场文书
文明班集体申报材料
2014/05/23 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书
Java 超详细讲解hashCode方法
2022/04/07 Java/Android