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 相关文章推荐
使用sockets:从新闻组中获取文章(二)
Oct 09 PHP
php echo()和print()、require()和include()函数区别说明
Mar 27 PHP
PHP 数组排序方法总结 推荐收藏
Jun 30 PHP
PHP与SQL注入攻击防范小技巧
Sep 16 PHP
PDO版本问题 Invalid parameter number: no parameters were bound
Jan 06 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
Jun 29 PHP
分享下PHP register_globals 值为on与off的理解
Sep 26 PHP
laravel自定义分页效果
Jul 23 PHP
thinkphp5框架API token身份验证功能示例
May 21 PHP
php利用ZipArchive类操作文件的实例
Jan 21 PHP
PHP字符串和十六进制如何实现互相转换
Jul 16 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
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 Mysql类 可以参考学习熟悉下
2009/06/21 PHP
array_multisort实现PHP多维数组排序示例讲解
2011/01/04 PHP
php cli模式学习(PHP命令行模式)
2013/06/03 PHP
php防止sql注入之过滤分页参数实例
2014/11/03 PHP
ThinkPHP路由详解
2015/07/27 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
jQuery.extend 函数的详细用法
2012/06/27 Javascript
表单提交前触发函数返回true表单才会提交
2014/03/11 Javascript
Javascript window对象详解
2014/11/12 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
用户代理字符串userAgent可实现的四个识别
2015/09/20 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
JavaScript和JQuery获取DIV值的方法示例
2017/03/07 Javascript
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
2017/12/24 jQuery
AngularJS日期格式化常见操作实例分析
2018/05/17 Javascript
微信小程序左右滚动公告栏效果代码实例
2019/09/16 Javascript
jQuery+PHP+Ajax实现动态数字统计展示功能
2019/12/25 jQuery
vue router返回到指定的路由的场景分析
2020/11/10 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
解决python写的windows服务不能启动的问题
2014/04/15 Python
Python单链表简单实现代码
2016/04/27 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
为什么说python适合写爬虫
2020/06/11 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
域名注册、建站工具、网页主机、SSL证书:Dynadot
2017/01/06 全球购物
美国开幕式潮店:Opening Ceremony
2018/02/10 全球购物
幼儿园爱国卫生月活动总结
2014/06/30 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
民主生活会对照检查材料思想汇报
2014/09/27 职场文书
公司股份转让协议书范本
2015/01/28 职场文书
幼儿园感恩节活动总结
2015/03/24 职场文书
Python中rapidjson参数校验实现
2021/07/25 Python
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS