thinkphp整合微信支付代码分享

时间:2022-02-26 14:33:18

本文实例为大家分享了thinkphp整合微信支付代码,供大家参考,具体内容如下

下载:支付SDK  

将微信支付SDK放在第三方类库Vendor下面,请切记把WxPay.Config.php里面的商户信息修改为您的公众号信息,以避免造成资金的流失。

php端代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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端代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<!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>

就这么简单。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。