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+mysql)
Nov 23 PHP
php cookie的操作实现代码(登录)
Dec 29 PHP
PHP自动识别字符集并完成转码详解
Aug 02 PHP
神盾加密解密教程(三)PHP 神盾解密工具
Jun 08 PHP
ThinkPHP验证码和分页实例教程
Aug 22 PHP
dedecms中使用php语句指南
Nov 13 PHP
php查找指定目录下指定大小文件的方法
Nov 28 PHP
yii权限控制的方法(三种方法)
Dec 28 PHP
高质量PHP代码的50个实用技巧必备(下)
Jan 22 PHP
PHP二维数组去重算法
Dec 17 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
Sep 10 PHP
is_file和file_exists效率比较
Mar 14 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
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
文件上传的实现
2006/10/09 PHP
php 使用array函数实现分页
2015/02/13 PHP
php时间计算相关问题小结
2016/05/09 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
JavaScript 直接操作本地文件的实现代码
2009/12/01 Javascript
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
20条学习javascript的编程规范的建议
2014/11/28 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
学习JavaScript设计模式(链式调用)
2015/11/26 Javascript
jquery对象访问是什么及使用方法介绍
2016/05/03 Javascript
JS获取当前页面名称的简单实例
2016/08/19 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
2018/02/08 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
详解JS实现系统登录页的登录和验证
2019/04/29 Javascript
js实现拖拽与碰撞检测
2020/09/18 Javascript
python实现问号表达式(?)的方法
2013/11/27 Python
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
Python django框架开发发布会签到系统(web开发)
2020/02/12 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
python中wheel的用法整理
2020/06/15 Python
CSS3实现时间轴效果
2016/07/11 HTML / CSS
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
Anthropologie英国:美国家喻户晓的休闲服装和家居产品品牌
2018/12/05 全球购物
客服主管岗位职责
2013/12/13 职场文书
银行开业庆典方案
2014/02/06 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
员工自我工作评价
2015/03/06 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书
初中班干部工作总结
2015/08/10 职场文书
CSS实现漂亮的时钟动画效果的实例代码
2021/03/30 HTML / CSS
利用Python将list列表写入文件并读取的方法汇总
2022/03/25 Python