整合微信支付
来源:互联网 发布:黑魂3奎爷捏脸数据 编辑:程序博客网 时间:2024/05/29 07:06
支付SDK下载
将微信支付SDK放在第三方类库Vendor下面
请切记把WxPay.Config.PHP里面的商户信息修改为您的公众号信息,以避免造成资金的流失。
php端代码
- public function pay(){
-
- 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>