thinkphp整合微信支付代码分享

5年以前  |  阅读数:782 次  |  编程语言:PHP 

本文实例为大家分享了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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
文件下载
贪吃蛇
获取IMEI
双位运算符
发送邮件
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
提取后缀名
年的日历图
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例