thinkPHP和onethink微信支付插件分享

 更新时间:2019-08-11 12:01:55   作者:佚名   我要评论(0)

thinkPHP和微支付实现的微信支付插件,在微信中调用微信jssdk实现支付,分享给大家参考下


//实现的Wxpay钩子方法
public function Wxpay($param){

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微支付插件所遇到的程序开发问题。

您可能感兴趣的文章:

  • 小程序微信支付功能配置方法示例详解【基于thinkPHP】
  • ThinkPHP框架实现的微信支付接口开发完整示例
  • ThinkPHP实现微信支付(jsapi支付)流程教程详解
  • Thinkphp整合微信支付功能
  • thinkphp整合微信支付代码分享
  • Thinkphp和onethink实现微信支付插件

相关文章

  • thinkPHP和onethink微信支付插件分享

    thinkPHP和onethink微信支付插件分享

    thinkPHP和微支付实现的微信支付插件,在微信中调用微信jssdk实现支付,分享给大家参考下 //实现的Wxpay钩子方法 public function Wxpay($param){
    2019-08-11
  • Angular8基础应用之表单及其验证

    Angular8基础应用之表单及其验证

    一、前提 必要性:特别必要 意义:很有意义 二、正文 (一)、新建表单(模板表单) 1、新建名称为formValidator的ng项目——命令行输入ng new form
    2019-08-11
  • PHP利用DWZ.CN服务生成短网址

    PHP利用DWZ.CN服务生成短网址

    使用DWZ.CN生成短网址 <&#63;php /** * FunctionHelper */ class FunctionHelper { // ----------------------------------------------------------
    2019-08-11
  • C#并发实战记录之Parallel.ForEach使用

    C#并发实战记录之Parallel.ForEach使用

    前言: 最近给客户开发一个伙食费计算系统,大概需要计算2000个人的伙食。需求是按照员工的预定报餐计划对消费记录进行检查,如有未报餐有刷卡或者有报餐没刷
    2019-08-11
  • Nginx代理axios请求以及注意事项详解

    Nginx代理axios请求以及注意事项详解

    前言 近期写个小demo,因为用到某大厂的在线数据,接口做了跨域限制,所以利用Nginx代理来解决这些问题。 1. nginx.conf 配置信息 由于nginx.conf配置信
    2019-08-11
  • 简单谈谈MySQL数据透视表

    简单谈谈MySQL数据透视表

    我有一张这样的产品零件表: 部分 part_id part_type product_id -------------------------------------- 1 A 1 2 B 1 3
    2019-08-11
  • Linux curl表单登录或提交与cookie使用详解

    Linux curl表单登录或提交与cookie使用详解

    前言 本文主要讲解通过curl 实现表单提交登录。单独的表单提交与表单登录都差不多,因此就不单独说了。 说明:针对curl表单提交实现登录,不是所有网站都适用
    2019-08-11
  • kotlin实现通知栏提醒功能示例代码

    kotlin实现通知栏提醒功能示例代码

    一、概述 2019年英雄联盟LPL赛区赛季赛打得火热,作为一个RNG粉丝,想通过app实现RNG赛程提醒,于是就有了这次技术实践。我在网上找了很久,几乎没找到使用ko
    2019-08-11
  • MySQL中“:=”和“=”的区别浅析

    MySQL中“:=”和“=”的区别浅析

    = 只有在set和update时才是和:=一样,赋值的作用,其它都是等于的作用。鉴于此,用变量实现行号时,必须用:=。 := 不只在set和update时时赋值的作用,在selec
    2019-08-08
  • 图文介绍mysql中:=和=的区别

    图文介绍mysql中:=和=的区别

    :=和=的区别 = 只有在set和update时才是和:=一样,赋值的作用,其它都是等于的作用。鉴于此,用变量实现行号时,必须用:= := 不只在set和u
    2019-08-08

最新评论