to_pay.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <?php
  2. define('IN_AJAX', true);
  3. @header('Content-Type: text/html; charset=utf-8');
  4. !defined('IN_MYMPS') && exit('ACCESS DENIED!');
  5. require_once 'function.php';
  6. $payr['payuser'] = trim($payr['payuser']);
  7. $payr['paykey'] = trim($payr['paykey']);
  8. $payr['appid'] = trim($payr['appid']);
  9. $payr['appsecret'] = trim($payr['appkey']);
  10. $order_no = $ddno ? $ddno : getOrderNo();
  11. session_start();
  12. $url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
  13. $params['wx_appid'] = $payr['appid'];
  14. if (!$_GET['code']) {
  15. if (!$_SESSION['openid'] || !$_SESSION['access_token']) {
  16. $request_url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' . $params['wx_appid'] . '&redirect_uri=' . urlencode($url) . '&response_type=code&scope=snsapi_base&state=123#wechat_redirect';
  17. header('location:' . $request_url);
  18. exit();
  19. }
  20. }
  21. else {
  22. $json = getAccessTokenByCode($_GET['code'], $payr['appid'], $payr['appsecret']);
  23. $_SESSION['openid'] = $json['openid'];
  24. $_SESSION['access_token'] = $json['access_token'];
  25. }
  26. $params = array('orderno' => $order_no, 'money' => $money);
  27. ToPayMoney($money, $order_no, $uid, $s_uid, 'wxpay');
  28. $config['title'] = $charset == 'gbk' ? iconv('gbk', 'utf-8', $productname) : $productname;
  29. $config['code'] = $params['orderno'];
  30. $config['money'] = $params['money'] * 100;
  31. $config['NotifyUrl'] = $PayReturnUrlQz . '/include/payment/wxpay/notify.php';
  32. $config['openid'] = $_SESSION['openid'];
  33. $config['appid'] = $payr['appid'];
  34. $config['appsecret'] = $payr['appsecret'];
  35. $config['payuser'] = $payr['payuser'];
  36. $config['paykey'] = $payr['paykey'];
  37. require_once 'wechat_jspay.php';
  38. $weixinpay = new wechat_jspay($config);
  39. $params = $result = $weixinpay->sendPay();
  40. if ($result === false) {
  41. exit('支付请求过程出错');
  42. }
  43. echo '<!doctype html>
  44. <html class="no-js">
  45. <head>
  46. <meta charset="utf-8">
  47. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  48. <meta name="description" content="">
  49. <meta name="keywords" content="">
  50. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  51. <title>微信支付</title>
  52. <!-- Set render engine for 360 browser -->
  53. <meta name="renderer" content="webkit">
  54. <!-- No Baidu Siteapp-->
  55. <meta http-equiv="Cache-Control" content="no-siteapp"/>
  56. <!-- Add to homescreen for Chrome on Android -->
  57. <meta name="mobile-web-app-capable" content="yes">
  58. <!-- Add to homescreen for Safari on iOS -->
  59. <meta name="apple-mobile-web-app-capable" content="yes">
  60. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  61. <link rel="stylesheet" href="template/css/weui.min.css">
  62. <script type="text/javascript">
  63. //调用微信JS api 支付
  64. function jsApiCall()
  65. {
  66. WeixinJSBridge.invoke(
  67. \'getBrandWCPayRequest\', {
  68. "appId" : "';
  69. echo $params['appId'];
  70. echo '", //公众号名称,由商户传入
  71. "timeStamp": "';
  72. echo $params['timeStamp'];
  73. echo '", //时间戳,自1970年以来的秒数
  74. "nonceStr" : "';
  75. echo $params['nonceStr'];
  76. echo '", //随机串
  77. "package" : "';
  78. echo $params['package'];
  79. echo '",
  80. "signType" : "';
  81. echo $params['signType'];
  82. echo '", //微信签名方式:
  83. "paySign" : "';
  84. echo $params['paySign'];
  85. echo '" //微信签名
  86. },
  87. function(res) {
  88. if (res.err_msg == "get_brand_wcpay_request:ok") {
  89. location.href = \'index.php?mod=member\';
  90. } else if (res.err_msg == "get_brand_wcpay_request:fail") {
  91. alert(\'支付失败\');
  92. }
  93. }
  94. );
  95. }
  96. function callpay()
  97. {
  98. if (typeof WeixinJSBridge == "undefined"){
  99. if( document.addEventListener ){
  100. document.addEventListener(\'WeixinJSBridgeReady\', jsApiCall, false);
  101. }else if (document.attachEvent){
  102. document.attachEvent(\'WeixinJSBridgeReady\', jsApiCall);
  103. document.attachEvent(\'onWeixinJSBridgeReady\', jsApiCall);
  104. }
  105. }else{
  106. jsApiCall();
  107. }
  108. }
  109. </script>
  110. </head>
  111. <body ontouchstart>
  112. <div class="weui_msg">
  113. <div class="weui_text_area" style="margin-top: 5em;">
  114. <div class="hd">
  115. <h1 class="page_title">';
  116. echo $money;
  117. echo ' 元</h1>
  118. <p class="weui_msg_desc">';
  119. echo $config['title'];
  120. echo '</p>
  121. </div>
  122. </div>
  123. <div class="weui_opr_area" style="margin-top: 4em;">
  124. <p class="weui_btn_area">
  125. <a href="javascript:void(0)" onclick="callpay()" class="weui_btn weui_btn_primary">立即支付</a>
  126. <a href="javascript:history.back();" class="weui_btn weui_btn_default">暂不支付</a>
  127. </p>
  128. </div>
  129. </div>
  130. </body>
  131. </html>';
  132. ?>