PHP PC端微信扫码支付【模式二】详细教程-附带源码(转) (7)

微信支付demo中的扫码支付文件 payment/example/native.php

<?php ini_set(\'date.timezone\',\'Asia/Shanghai\'); //error_reporting(E_ERROR); require_once "../lib/WxPay.Api.php"; require_once "WxPay.NativePay.php"; require_once \'log.php\'; //模式一 /** * 流程: * 1、组装包含支付信息的url,生成二维码 * 2、用户扫描二维码,进行支付 * 3、确定支付之后,微信服务器会回调预先配置的回调地址,在【微信开放平台-微信支付-支付配置】中进行配置 * 4、在接到回调通知之后,用户进行统一下单支付,并返回支付信息以完成支付(见:native_notify.php) * 5、支付完成之后,微信服务器会通知支付成功 * 6、在支付成功通知中需要查单确认是否真正支付成功(见:notify.php) */ $notify = new NativePay(); $url1 = $notify->GetPrePayUrl("123456789"); $goodsPrice = $_GET[\'goodsPrice\']; $goodsName = $_GET[\'goodsName\']; // print_r($goodsPrice);die; //模式二 /** * 流程: * 1、调用统一下单,取得code_url,生成二维码 * 2、用户扫描二维码,进行支付 * 3、支付完成之后,微信服务器会通知支付成功 * 4、在支付成功通知中需要查单确认是否真正支付成功(见:notify.php) */ $input = new WxPayUnifiedOrder(); $input->SetBody($goodsName); $input->SetAttach("今知商城"); $num = WxPayConfig::MCHID.date("YmdHis"); $input->SetOut_trade_no($num); $input->SetTotal_fee($goodsPrice*100); $input->SetTime_start(date("YmdHis")); $input->SetTime_expire(date("YmdHis", time() + 600)); $input->SetGoods_tag($goodsName); $input->SetNotify_url("/payment/example/notify.php"); $input->SetTrade_type("NATIVE"); $input->SetProduct_id("123456789"); $result = $notify->GetPayUrl($input); //echo "<pre>"; //print_r($result); $url2 = $result["code_url"]; ?> <html> <head> <meta http-equiv=http://www.likecs.com/"content-type" content=http://www.likecs.com/"text/html;charset=utf-8"/> <meta name=http://www.likecs.com/"viewport" content=http://www.likecs.com/"width=device-width, initial-scale=1" /> <title>微信支付样例</title> </head> <body> <div style=http://www.likecs.com/"margin-left: 10px;color:#556B2F;font-size:30px;font-weight: bolder;">扫描支付模式二</div><br/> <img alt=http://www.likecs.com/"||<?php echo $num?>||" src=http://www.likecs.com/"qrcode.php?data=<?php echo urlencode($url2);?>" style=http://www.likecs.com/"width:150px;height:150px;"/> <div id=http://www.likecs.com/"myDiv"></div><div id=http://www.likecs.com/"timer">0</div> <script> //设置每隔1000毫秒执行一次load() 方法 var myIntval=setInterval(function(){load()},1000); function load(){ document.getElementById("timer").innerHTML=http://www.likecs.com/parseInt(document.getElementById("timer").innerHTML)+1; var xmlhttp; if (window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=http://www.likecs.com/new XMLHttpRequest(); }else{ // code for IE6, IE5 xmlhttp=http://www.likecs.com/new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=http://www.likecs.com/function(){ if (xmlhttp.readyState==http://www.likecs.com/4 && xmlhttp.status==http://www.likecs.com/200){ trade_state=xmlhttp.responseText; if(trade_state==http://www.likecs.com/\'SUCCESS\'){ document.getElementById("myDiv").innerHTML=http://www.likecs.com/\'支付成功\'; //alert(transaction_id); //延迟3000毫秒执行tz() 方法 clearInterval(myIntval); setTimeout("location.href=http://www.likecs.com/\'success.php\'",3000); }else if(trade_state==http://www.likecs.com/\'REFUND\'){ document.getElementById("myDiv").innerHTML=http://www.likecs.com/\'转入退款\'; clearInterval(myIntval); }else if(trade_state==http://www.likecs.com/\'NOTPAY\'){ document.getElementById("myDiv").innerHTML=http://www.likecs.com/\'请扫码支付\'; }else if(trade_state==http://www.likecs.com/\'CLOSED\'){ document.getElementById("myDiv").innerHTML=http://www.likecs.com/\'已关闭\'; clearInterval(myIntval); }else if(trade_state==http://www.likecs.com/\'REVOKED\'){ document.getElementById("myDiv").innerHTML=http://www.likecs.com/\'已撤销\'; clearInterval(myIntval); }else if(trade_state==http://www.likecs.com/\'USERPAYING\'){ document.getElementById("myDiv").innerHTML=http://www.likecs.com/\'用户支付中\'; }else if(trade_state==http://www.likecs.com/\'PAYERROR\'){ document.getElementById("myDiv").innerHTML=http://www.likecs.com/\'支付失败\'; clearInterval(myIntval); } } } //orderquery.php 文件返回订单状态,通过订单状态确定支付状态 xmlhttp.open("POST","orderquery.php",false); //下面这句话必须有 //把标签/值对添加到要发送的头文件。 xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send("out_trade_no=<?php echo $num;?>"); } </script> </body>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpfxp.html