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 相关文章推荐
第七节--类的静态成员
Nov 16 PHP
php下通过POST还是GET来传值
Jun 05 PHP
PHP cron中的批处理
Sep 16 PHP
PHP初学者最感迷茫的问题小结
Mar 27 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
Aug 31 PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
Nov 26 PHP
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
Jul 18 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
Sep 22 PHP
PHP时间和日期函数详解
May 08 PHP
PHP代码实现爬虫记录――超管用
Jul 31 PHP
php实现图片缩略图的方法
Mar 29 PHP
Laravel 实现密码重置功能
Feb 23 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
Apache2 httpd.conf 中文版
2006/11/17 PHP
php 301转向实现代码
2008/09/18 PHP
有关JSON以及JSON在PHP中的应用
2010/04/09 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
2012/01/20 PHP
PHP基于单例模式实现的mysql类
2016/01/09 PHP
php 利用socket发送GET,POST请求的实例代码
2020/07/04 PHP
AJAX的跨域与JSONP(为文章自动添加短址的功能)
2010/01/17 Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
2013/08/13 Javascript
js/html光标定位的实现代码
2013/09/23 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
jQuery仿写百度百科的目录树
2017/01/03 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
js实现同一个页面,多个enter事件绑定的示例
2018/10/10 Javascript
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
IE11下处理Promise及Vue的单项数据流问题
2019/07/24 Javascript
vue 使用外部JS与调用原生API操作示例
2019/12/02 Javascript
vue实现匀速轮播效果
2020/06/29 Javascript
[01:02]2014 DOTA2国际邀请赛中国区预选赛 现场抢先看
2014/05/22 DOTA
Python中的choice()方法使用详解
2015/05/15 Python
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
Python模块的定义,模块的导入,__name__用法实例分析
2020/01/07 Python
Python-numpy实现灰度图像的分块和合并方式
2020/01/09 Python
Django接收照片储存文件的实例代码
2020/03/07 Python
django迁移文件migrations的实现
2020/03/31 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
HTML5新特性 多线程(Worker SharedWorker)
2017/04/24 HTML / CSS
浅谈react路由传参的几种方式
2021/03/23 Javascript
集团薪酬管理制度
2014/01/13 职场文书
团支书竞选演讲稿
2014/04/28 职场文书
捐资助学感谢信
2015/01/21 职场文书
个人工作年终总结
2015/03/09 职场文书
员工离职通知函
2015/04/25 职场文书
绿色环保倡议书
2015/04/28 职场文书
《夜莺的歌声》教学反思
2016/02/22 职场文书