Heim > php教程 > php手册 > Hauptteil

TP kombiniert mit WeChat-Scancode-Zahlungsmodus 2

WBOY
Freigeben: 2016-09-23 03:29:56
Original
1457 Leute haben es durchsucht

tp结合微信扫码支付模式二
首先引入微信下载的类,可以用我打包的,名称我修改了的
TP kombiniert mit WeChat-Scancode-Zahlungsmodus 2
把微信类放到thinkphp核心框架的Library\Vendor\下面
在微信类的Config.php 文件里面配置数据
TP kombiniert mit WeChat-Scancode-Zahlungsmodus 2
然后在要使用的模块中调用
TP kombiniert mit WeChat-Scancode-Zahlungsmodus 2
然后在获取支付二维码的方法中写
TP kombiniert mit WeChat-Scancode-Zahlungsmodus 2$money=1<br> $goodsid=time();<br> $order = time();<br> $notify = new \NativePay();<br> $input = new \WxPayUnifiedOrder(); //调用统一下单类<br> $input->SetBody($body);//这是商品标题<br> $input->SetAttach($body);<br> $input->SetOut_trade_no($goodsid);//这是单号<br> $input->SetTotal_fee($money*100);//这是金额,微信金额是按分计算,所以要   *100<br> //$input->SetTotal_fee("1");<br> $input->SetTime_start(date("YmdHis"));<br> $input->SetTime_expire(date("YmdHis", time() + 7200));<br> $input->SetNotify_url('http://'.$_SERVER['HTTP_HOST'].U('Member/notify'));<br> $input->SetTrade_type("NATIVE");<br> $input->SetProduct_id($goodsid);<br> $out_trade_no = $input->GetOut_trade_no();<br> $result = $notify->GetPayUrl($input);<br> $url = $result["code_url"];//这就是返回的二维码地址,要在前端生成二维码<br> $arr['out_trade_no']=$out_trade_no;<br> $arr['code_url']=$url;<br> $arr['order']=$order; 以下是生成二维码的jquery,先引入生成二维码的js,也可以用其他方法[js文件我会打包]
window.onload = function(){<br>     var c_url="<?php echo $arr[&#039;code_url&#039;];?>";<br>    qr_code(c_url);<br> };<br> //生成二维码<br> function qr_code(url,out_trade_no,order){<br>     if(url){<br>         //参数1表示图像大小,取值范围1-10;参数2表示质量,取值范围'L','M','Q','H'<br>         var qr = qrcode(10, 'M');<br>         qr.addData(url);<br>         qr.make();<br>         var code=document.createElement('DIV');<br>         code.innerHTML = qr.createImgTag();<br>         var element=document.getElementById("code_url");<br>         element.appendChild(code);    <br>     }    <br> }<br> //生成的二维码会出现在这里<br> <div></div>TP kombiniert mit WeChat-Scancode-Zahlungsmodus 2

Anschließend wird beurteilt, ob der Benutzer den QR-Code zum Bezahlen gescannt hat
Ich habe einen asynchronen Code eingefügt, der alle 3 Sekunden eine Abfrage auf der Seite durchführt, auf der der QR-Code generiert wird $(function(){<br>     setInterval(function(){check()} , 3000);  //没隔三秒执行一次 ajax<br>     function check(){<br>         var out_trade_no = $("#code_url").attr('out_trade_no');<br>         var order = $("#code_url").attr('order');<br>         $.ajax({<br>             type: "post",<br>             url: '{:U("Member/orderquery")}',  //请求函数<br>             async: false,<br>             data: {'out_trade_no':out_trade_no,'order':order},<br>             dataType: "json",<br>             success: function (data) {<br>                 if (data.status) {<br>                     layer.msg(data.info,{btn:'确定'},function(){<br>                         parent.location.reload();    //支付成功刷新<br>                         return false;<br>                     })<br>                 }else{<br>                     result = false;<br>                 }<br>             }<br>         });<br>     }<br> })$(function(){
setInterval(function(){check()}, 3000); //AjaxTP kombiniert mit WeChat-Scancode-Zahlungsmodus 2 alle drei Sekunden ausführen Funktionsprüfung(){         var out_trade_no = $("#code_url").attr('out_trade_no');<br>       var order = $("#code_url").attr('order');<br>           $.ajax({<br>            Typ: „Beitrag“,<br> ​​​​​ URL: '{:U("Member/orderquery")}', //Anfragefunktion<br> asynchron: false,<br>                Daten: {'out_trade_no':out_trade_no,'order':order},<br>             dataType: „json“,<br> Erfolg: Funktion (Daten) {<br> Wenn (data.status) {<br> layer.msg(data.info,{btn:'OK'},function(){<br>                                                                                                                                                                                         Parent.location.reload();                                                                                                                                                                                         })<br>                         }else{<br>                     result = false;<br>                 }<br>             }<br>         }); } })Hier ist der angeforderte Programmcode (die nach erfolgreicher Zahlung ausgeführten Aktionen können je nach Bedarf geändert werden) //Überprüfen Sie, ob die Zahlung abgeschlossen ist Öffentliche Funktion orderquery($out_trade_no=null, $orderid=null){         $out_trade_no = $_POST['out_trade_no']; $order = $_POST['order']; If(isset($out_trade_no) && $out_trade_no != ""){           $out_trade_no = $_REQUEST["out_trade_no"];            $input = new WxPayOrderQuery();              $input->SetOut_trade_no($out_trade_no);            $result = WxPayApi::orderQuery($input);        }         $cash_fee=$result['cash_fee']/100;//Zahlungsbetrag /*Bestimmen Sie, ob die Zahlung erfolgreich war*/ If ( $result["trade_state"] == "SUCCESS" ){              $data=array('goodsid'=>$result['out_trade_no'],'status'=>1,'pay_type'=>2);               $cz=M('cz_records')->where($data)->find();              if($cz){if(M('cz_records')->where($data)->save(array('money'=>$cash_fee,'transaction_id'=>$result['transaction_id'],'status'= >2))){<br> if($this->set_money($cz['uid'],$cz['type'],C('date'),$cz['money'],$cz['transaction_id'])){ <br>                        $this->success('Successful payment:'.$cash_fee. 'yuan');                                                                               }<br>                                                                                                                                                            }<br>        }<br> }<br>Passwort zum Dekomprimieren des komprimierten Pakets: www.renweinet.net<br>


WeChat-Scancode payment.zip

( 23,33 KB Download: 0 Mal )TP kombiniert mit WeChat-Scancode-Zahlungsmodus 2

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage