thinkphp整合微信支付代码分享


Posted in PHP onNovember 24, 2016

本文实例为大家分享了thinkphp整合微信支付代码,供大家参考,具体内容如下

下载:支付SDK  

将微信支付SDK放在第三方类库Vendor下面,请切记把WxPay.Config.php里面的商户信息修改为您的公众号信息,以避免造成资金的流失。

php端代码

public function pay(){ 
  //商户基本信息,可以写死在WxPay.Config.php里面,其他详细参考WxPayConfig.php     
  vendor('Pay.JSAPI'); 
  $tools = new \JsApiPay(); 
  $openid = $tools->GetOpenid(); 
  $Out_trade_no=date('YHis').rand(100,1000); 
  $Total_fee='测试'; 
  $Body='啥也不说'; 
  $Total_fee=1; 
  $input = new \WxPayUnifiedOrder(); 
  $input->SetBody($Body); 
  $input->SetOut_trade_no($Out_trade_no); 
  $input->SetTotal_fee($Total_fee); 
  $input->SetNotify_url("http://xx.xxx.com/pay/notify.php"); 
  $input->SetTrade_type("JSAPI"); 
  $input->SetOpenid($openId); 
  $order = \WxPayApi::unifiedOrder($input); 
  $this->jsApiParameters = $tools->GetJsApiParameters($order); 
  $this->display(); 
}

 HTML端代码

<!doctype html> 
<head> 
  <meta charset="UTF-8"> 
  <title>微信安全支付</title> 
  <meta name="keywords" content="" /> 
  <meta name="HandheldFriendly" content="True"> 
  <meta name="MobileOptimized" content="320"> 
  <meta name="format-detection" content="telephone=no"> 
  <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> 
  <meta http-equiv="Pragma" content="no-cache" /> 
  <meta http-equiv="Expires" content="0" /> 
  <meta http-equiv="cleartype" content="on"> 
  <meta id="viewport" name="viewport" content="width=320, initial-scale=1.0,maximum-scale=1.0, user-scalable=0," /> 
  <script type="text/javascript"> 
    //调用微信JS api 支付 
    function jsApiCall() 
    { 
      WeixinJSBridge.invoke( 
        'getBrandWCPayRequest', 
        {$jsApiParameters}, 
        function(res){ 
          WeixinJSBridge.log(res.err_msg); 
          if(res.err_msg == 'get_brand_wcpay_request:cancel') { 
            alert("您已取消了此次支付"); 
            return; 
          } else if(res.err_msg == 'get_brand_wcpay_request:fail') { 
            alert("支付失败"); 
            return; 
          } else if(res.err_msg == 'get_brand_wcpay_request:ok') { 
          alert("支付成功!");//跳转到订单页面 
           
        } else { 
          alert("未知错误"+res.error_msg); 
          return; 
        } 
      } 
      ); 
    } 
    function callpay() 
    { 
      if (typeof WeixinJSBridge == "undefined"){ 
        if( document.addEventListener ){ 
          document.addEventListener('WeixinJSBridgeReady', jsApiCall, false); 
        }else if (document.attachEvent){ 
          document.attachEvent('WeixinJSBridgeReady', jsApiCall);  
          document.attachEvent('onWeixinJSBridgeReady', jsApiCall); 
        } 
      }else{ 
        jsApiCall(); 
      } 
    } 
  </script> 
</head> 
<body> 
  <button type="button" class="btn btn-danger btn-lg btn-block" onclick="callpay()"> 
    确认支付 
  </button> 
</body> 
</html>

就这么简单。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP 数组入门教程小结
May 20 PHP
PHP 文件扩展名 获取函数
Jun 03 PHP
php中判断文件存在是用file_exists还是is_file的整理
Sep 12 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
Jun 03 PHP
深入理解require与require_once与include以及include_once的区别
Jun 05 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
Apr 10 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
Nov 01 PHP
php实现ip白名单黑名单功能
Mar 12 PHP
MySql数据库查询结果用表格输出PHP代码示例
Mar 20 PHP
PHP+Apache+Mysql环境搭建教程
Aug 01 PHP
微信公众号OAuth2.0网页授权问题浅析
Jan 21 PHP
通过PHP实现用户注册后邮箱验证激活
Nov 10 PHP
Yii2中使用asset压缩js,css文件的方法
Nov 24 #PHP
微信自定义分享php代码分析
Nov 24 #PHP
php插入含有特殊符号数据的处理方法
Nov 24 #PHP
PHP合并数组的2种方法小结
Nov 24 #PHP
PHP magento后台无法登录问题解决方法
Nov 24 #PHP
微信 开发生成带参数的二维码的实例
Nov 23 #PHP
微信 getAccessToken方法详解及实例
Nov 23 #PHP
You might like
php购物车实现代码
2011/10/10 PHP
PHP中spl_autoload_register函数的用法总结
2013/11/07 PHP
php解析http获取的json字符串变量总是空白null
2015/03/02 PHP
JavaScript 入门基础知识 想学习js的朋友可以参考下
2009/12/26 Javascript
Javascript 中 null、NaN和undefined的区别总结
2013/04/10 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
js实现动态改变字体大小代码
2014/01/02 Javascript
Sublime Text 3常用插件及安装方法
2015/12/16 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
原生JS获取元素集合的子元素宽度实例
2016/12/14 Javascript
vue-dialog的弹出层组件
2020/05/25 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
使用express搭建一个简单的查询服务器的方法
2018/02/09 Javascript
Vue前端开发规范整理(推荐)
2018/04/23 Javascript
vue-cli2.9.3 详细教程
2018/04/23 Javascript
JS实现模糊查询带下拉匹配效果
2018/06/21 Javascript
element-ui 中的table的列隐藏问题解决
2018/08/24 Javascript
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
重置Redux的状态数据的方法实现
2019/11/18 Javascript
小程序websocket心跳库(websocket-heartbeat-miniprogram)
2020/02/23 Javascript
使用element-ui +Vue 解决 table 里包含表单验证的问题
2020/07/17 Javascript
Python的Django框架中从url中捕捉文本的方法
2015/07/20 Python
python 多线程实现检测服务器在线情况
2015/11/25 Python
Python pygorithm模块用法示例【常见算法测试】
2018/08/16 Python
python实现Flappy Bird源码
2018/12/24 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
2019/01/15 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
利用python绘制数据曲线图的实现
2020/04/09 Python
使用Python三角函数公式计算三角形的夹角案例
2020/04/15 Python
世界上最受欢迎的钓鱼诱饵:Rapala
2019/05/02 全球购物
static全局变量与普通的全局变量有什么区别
2014/05/27 面试题
幼师自荐信
2013/10/26 职场文书
小学社会实践活动总结
2014/07/03 职场文书
2014年幼儿园教师工作总结
2014/11/08 职场文书
会计工作总结范文2014
2014/12/23 职场文书