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的类 功能齐全的发送邮件类
Oct 09 PHP
php中关于普通表单多文件上传的处理方法
Mar 25 PHP
PHP中输出转义JavaScript代码的实现代码
Apr 22 PHP
解析wamp5下虚拟机配置文档
Jun 27 PHP
深入解析fsockopen与pfsockopen的区别
Jul 05 PHP
ThinkPHP之foreach标签使用概述
Jun 30 PHP
php自定义错误处理用法实例
Mar 20 PHP
php轻量级的性能分析工具xhprof的安装使用
Aug 12 PHP
学习php设计模式 php实现桥梁模式(bridge)
Dec 07 PHP
总结PHP内存释放以及垃圾回收
Mar 29 PHP
PHP里的$_GET数组介绍
Mar 22 PHP
PHP写API输出的时用echo的原因详解
Apr 28 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中is_file不能替代file_exists的理由
2014/03/04 PHP
php过滤表单提交的html等危险代码
2014/11/03 PHP
php实现网站留言板功能
2015/11/04 PHP
PHP实现截取中文字符串不出现?号的解决方法
2016/12/29 PHP
PHP时间戳和日期相互转换操作实例小结
2018/12/18 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
js对象的构造和继承实现代码
2010/12/05 Javascript
学习从实践开始之jQuery插件开发 菜单插件开发
2012/05/03 Javascript
jQuery中find()方法用法实例
2015/01/07 Javascript
JavaScript通过字符串调用函数的实现方法
2015/03/18 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
深入理解React中何时使用箭头函数
2017/08/23 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
C#程序员入门学习微信小程序的笔记
2019/03/05 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
微信小程序3种位置API的使用方法详解
2019/08/05 Javascript
vue实现移动端项目多行文本溢出省略
2020/07/29 Javascript
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
完美解决keras保存好的model不能成功加载问题
2020/06/11 Python
详解canvas drawImage()方法绘制图片不显示的问题
2018/10/08 HTML / CSS
Mistine官方海外旗舰店:泰国国民彩妆品牌
2016/12/28 全球购物
德国婴儿服装和婴儿用品购买网站:Baby Sweets
2019/12/08 全球购物
五年级英语教学反思
2014/01/31 职场文书
人事专员的职责
2014/02/26 职场文书
机工车间主任岗位职责
2014/03/05 职场文书
机电一体化求职信
2014/03/10 职场文书
幼儿园毕业典礼主持词
2014/03/21 职场文书
销售员岗位职责
2014/06/09 职场文书
高中化学教学反思
2016/02/22 职场文书
使用react+redux实现计数器功能及遇到问题
2021/06/02 Javascript