jsapi.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. include("../../../../config/conn.php");
  3. include("../../../../config/function.php");
  4. sesCheck_m();
  5. $sqluser="select * from yjcode_user where uid='".$_SESSION[SHOPUSER]."'";mysql_query("SET NAMES 'GBK'");$resuser=mysql_query($sqluser);
  6. if(!$rowuser=mysql_fetch_array($resuser)){php_toheader("../../../reg/");}
  7. $sj=date("Y-m-d H:i:s");
  8. if(sqlzhuru($_POST[jvs])=="carpay"){
  9. include("../../../../user/buycheck.php");
  10. if($needmoney<=$usermoney){Audit_alert("您的可用余额充足,请用余额直接支付。","../../carpay.php?carid=".$carid);}
  11. zwzr();
  12. updatetable("yjcode_user","uqq='".sqlzhuru($_POST[tuqq])."' where uid='".$_SESSION[SHOPUSER]."'");
  13. $bh=time();
  14. $_SESSION[wxddbh]=time()."wx".$rowuser[id]."wx".rnd_num(1000);
  15. $uip=$_SERVER["REMOTE_ADDR"];
  16. $ddbh=time()."|".$rowuser[id];
  17. $money1=sprintf("%.2f",($needmoney-$usermoney));
  18. $buyformarr=sqlzhuru($_POST[buyformv]);
  19. intotable("yjcode_dingdang","bh,ddbh,userid,sj,uip,money1,ddzt,alipayzt,bz,ifok,probh,pronum,tcid,wxddbh,buyform","'".$bh."','".$ddbh."',".$rowuser[id].",'".$sj."','".$uip."',".$money1.",'等待买家付款','','微信手机支付',0,'".$bharr."','".$numarr."','".$tcidarr."','".$_SESSION[wxddbh]."','".$buyformarr."'");
  20. }
  21. //error_reporting(E_ERROR);
  22. require_once "../lib/WxPay.Api.php";
  23. require_once "WxPay.JsApiPay.php";
  24. require_once 'log.php';
  25. //初始化日志
  26. $logHandler= new CLogFileHandler("../logs/".date('Y-m-d').'.log');
  27. $log = Log::Init($logHandler, 15);
  28. //打印输出数组信息
  29. function printf_info($data)
  30. {
  31. foreach($data as $key=>$value){
  32. //echo "<font color='#00ff55;'>$key</font> : $value <br/>";
  33. }
  34. }
  35. //①、获取用户openid
  36. $tools = new JsApiPay();
  37. $openId = $tools->GetOpenid();
  38. //②、统一下单
  39. while1("*","yjcode_dingdang where wxddbh='".$_SESSION[wxddbh]."'");$row1=mysql_fetch_array($res1);$moneyv=$row1[money1]*100;
  40. $input = new WxPayUnifiedOrder();
  41. $input->SetBody(iconv("GB2312","UTF-8//IGNORE",webname."商品结算"));
  42. $input->SetAttach("test");
  43. $input->SetOut_trade_no("$_SESSION[wxddbh]");
  44. $input->SetTotal_fee($moneyv);
  45. $input->SetTime_start(date("YmdHis"));
  46. $input->SetTime_expire(date("YmdHis", time() + 600));
  47. $input->SetGoods_tag("test");
  48. $input->SetNotify_url(weburl."m/user/wxpay_gz/example/buy_notify.php");
  49. $input->SetTrade_type("JSAPI");
  50. $input->SetOpenid($openId);
  51. $order = WxPayApi::unifiedOrder($input);
  52. //echo '<font color="#f00"><b>统一下单支付单信息</b></font><br/>';
  53. //printf_info($order);
  54. $jsApiParameters = $tools->GetJsApiParameters($order);
  55. //获取共享收货地址js函数参数
  56. $editAddress = $tools->GetEditAddressParameters();
  57. //③、在支持成功回调通知中处理成功之后的事宜,见 notify.php
  58. /**
  59. * 注意:
  60. * 1、当你的回调地址不可访问的时候,回调通知会失败,可以通过查询订单来确认支付是否成功
  61. * 2、jsapi支付时需要填入用户openid,WxPay.JsApiPay.php中有获取openid流程 (文档可以参考微信公众平台“网页授权接口”,
  62. * 参考http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html)
  63. */
  64. ?>
  65. <html>
  66. <head>
  67. <meta http-equiv="content-type" content="text/html;charset=gb2312"/>
  68. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  69. <title>微信支付样例-支付</title>
  70. <script type="text/javascript">
  71. //调用微信JS api 支付
  72. function jsApiCall()
  73. {
  74. WeixinJSBridge.invoke(
  75. 'getBrandWCPayRequest',
  76. <?php echo $jsApiParameters; ?>,
  77. function(res){
  78. WeixinJSBridge.log(res.err_msg);
  79. if(res.err_msg == "get_brand_wcpay_request:ok"){
  80. //alert(res.err_code+res.err_desc+res.err_msg);
  81. window.location.href="../../order.php";
  82. }else{
  83. //返回跳转到订单详情页面
  84. window.location.href="../../car.php";
  85. };
  86. }
  87. );
  88. }
  89. function callpay()
  90. {
  91. if (typeof WeixinJSBridge == "undefined"){
  92. if( document.addEventListener ){
  93. document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);
  94. }else if (document.attachEvent){
  95. document.attachEvent('WeixinJSBridgeReady', jsApiCall);
  96. document.attachEvent('onWeixinJSBridgeReady', jsApiCall);
  97. }
  98. }else{
  99. jsApiCall();
  100. }
  101. }
  102. </script>
  103. </head>
  104. <body onLoad="callpay()">
  105. </body>
  106. </html>