hyperf-2022-04-19.log 65 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343
  1. [2022-04-19 18:09:29] pay.INFO: 支付通道(App\Repositories\Service\Payment\MingsenPayment), 错误信息:(请求异常 (解析) data=<!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <meta http-equiv="Content-Language" content="zh-cn">
  6. <meta name="apple-mobile-web-app-capable" content="yes" />
  7. <meta name="apple-touch-fullscreen" content="yes" />
  8. <meta name="format-detection" content="telephone=no,email=no" />
  9. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  10. <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
  11. <meta name="referrer" content="never">
  12. <meta http-equiv="Expires" content="0">
  13. <meta http-equiv="Pragma" content="no-cache">
  14. <meta http-equiv="Cache-control" content="no-cache">
  15. <meta http-equiv="Cache" content="no-cache">
  16. <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  17. <title>支付订单</title>
  18. <link href="/static/css/main.css?version=1" rel="stylesheet" media="screen">
  19. <style type="text/css">
  20. </style>
  21. </head>
  22. <body class="clipboard">
  23. <div class="body">
  24. <h1 class="mod-title">
  25. <span id="logoSpan" class="ico_log ico-3"></span>
  26. </h1>
  27. <div class="mod-ct">
  28. <div id="errMsg" style="margin-top:15px;display: none;background-color: #ff0000;color:white;font-size: 18px;font-weight: bold;margin-bottom: 2px;padding: 5px;margin-top: -83px;z-index: 9999;position: relative;"></div>
  29. <div class="order">
  30. </div>
  31. <div class="amount" id="money">¥0.00</div>
  32. <div class="qrcode-img-wrapper" data-role="qrPayImgWrapper">
  33. <div id="qrcode" style="display: none;"></div>
  34. <div data-role="qrPayImg" class="qrcode-img-area">
  35. <div class="ui-loading qrcode-loading" data-role="qrPayImgLoading"></div>
  36. <div style="position: relative;">
  37. <div class="time-item" id="msg" style="color:red;font-size: 18px;font-weight: bold;">
  38. <span>匹配中,请耐心等待</span><br />
  39. </div>
  40. <div id='div_qr_demo_img' style="display: none;"><img id="div_qr_demo_imgnode" style="width: 100%;" src="" data-src="/static/images/weixin_other_scan.jpg"></img></div>
  41. <div id="divTimer" class="time-item" style="color:red;font-size:22px">
  42. <strong id="hour_show">0时</strong>
  43. <strong id="minute_show">0分</strong>
  44. <strong id="second_show">0秒</strong>
  45. </div><br />
  46. <div style="font-size: 14px;font-weight: bold;color: #4c9f9f;">
  47. <span id='orderId'></span><br />
  48. 请在规定时间内支付,超时不予赔付
  49. </div>
  50. </div>
  51. </div>
  52. </div>
  53. <div id="ali_show" style="display: none;">
  54. </div>
  55. <div id="wx_show" style="display: none;">
  56. </div>
  57. </div>
  58. </div>
  59. <div id="wexin_guide_div" style="display: none;">
  60. <div class="mod-ct">
  61. <div style="color: rgb(0 0 0 / 80%);">
  62. <h1 style="font-size: 20px; padding: 10px;">支付教程</h1>
  63. <div id="msg2" style="color:red;font-size: 18px;font-weight: bold;">
  64. </div>
  65. <div class="pay-text" style="text-align: left; font-size: 20px;">
  66. <p>
  67. 1、点击下面黄色按钮复制链接;
  68. </p>
  69. <p>
  70. 2、在微信搜索框输入“文件传输助手”点击进入
  71. </p>
  72. <p>
  73. 3、粘贴复制的链接,然后发送,再点击链接支付
  74. </p>
  75. </div>
  76. <div class="content">
  77. <div style="margin: 25px 0;"><button id="wxgiudebtn" class="clipboard" data-clipboard-action="copy" style="border-radius: 10px;display: inline-block;width: 80%;margin: 0 20px 0px;height: 40px;color: #405cc1; line-height:36px;background: #eae510;border: 1px solid #babbba;font-size:20px">去支付</button>
  78. <p style="color:#000000;text-align:center;padding-top:6px;font-size: 16px;">提示:此按钮自动复制链接并唤醒微信</p>
  79. </div>
  80. <div id="tutorials-content" style="display:block;">
  81. <p style="color: #445fc2; font-size: 135%;padding-bottom: 3%; ">图文教程</p>
  82. <img id="weixinguide_img" src="" data-src="/static/images/wxgzhguide.png" style="width:96%;height:100%">
  83. </div>
  84. </div>
  85. </div>
  86. </div>
  87. </div>
  88. <script type="text/javascript" src="/js/qrcode.min.js"></script>
  89. <script type='text/javascript' src='/js/jquery.min.js'></script>
  90. <script type="text/javascript" src="/js/dayjs.min.js"></script>
  91. <script type="text/javascript" src="/js/clipboard.min.js"></script>
  92. <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  93. <script src="https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.10.7/dayjs.min.js"></script>
  94. <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.10/clipboard.min.js"></script> -->
  95. <script type="text/javascript">
  96. // var content2 = "<img width='100%' src='/static/images/xxx.gif' />"; //弹出图片
  97. var urlParams = getUrlParams()
  98. var level = "0";
  99. var clipboardUrl = window.location.origin + '/s/' + urlParams['eo'];
  100. $(function () {
  101. var amount = urlParams['amount'];
  102. var orderId = urlParams['eo'];
  103. $('#money').text('¥' + amount / 100);
  104. $('#orderId').text('订单:' + orderId);
  105. // document.title = orderId;
  106. // $('#clipboardBtn').attr('data-clipboard-text', window.location.href);
  107. // $('#wxgiudebtn').attr('data-clipboard-text', clipboardUrl);
  108. if (urlParams['payType'] == 'alipay') {
  109. $('#logoSpan').removeClass('ico-3');
  110. $('#logoSpan').addClass('ico-1');
  111. $('#wxerrer').remove();
  112. $('#wxerrertwo').remove();
  113. }
  114. });
  115. //读取url参数
  116. function getUrlParams() {
  117. var urlParams;
  118. var match,
  119. pl = /\+/g, // Regex for replacing addition symbol with a space
  120. search = /([^&=]+)=?([^&]*)/g,
  121. decode = function (s) {
  122. return decodeURIComponent(s.replace(pl, " "));
  123. },
  124. query = window.location.search.substring(1);
  125. urlParams = {};
  126. while (match = search.exec(query))
  127. urlParams[decode(match[1])] = decode(match[2]);
  128. return urlParams
  129. }
  130. </script>
  131. <script type="text/javascript">
  132. var myTimer;
  133. var isStopQuery = false;
  134. var createdAt = parseInt(urlParams['cat']);
  135. var expireTime;
  136. var outTime = 120; //匹配订单的过期时间 单位秒
  137. var intDiff = (parseInt(createdAt) + outTime * 1000 - new Date().getTime()) / 1000;
  138. var wxPayUrl = '';
  139. var isChecking = false;
  140. var matchSeconds = 0;
  141. var chargeOrderId;
  142. var phone;
  143. checkdata();
  144. function goTimer() {
  145. myTimer = window.setInterval(function () {
  146. var day = 0,
  147. hour = 0,
  148. minute = 0,
  149. second = 0; //时间默认值
  150. if (intDiff > 0) {
  151. day = Math.floor(intDiff / (60 * 60 * 24));
  152. hour = Math.floor(intDiff / (60 * 60)) - (day * 24);
  153. minute = Math.floor(intDiff / 60) - (day * 24 * 60) - (hour * 60);
  154. second = Math.floor(intDiff) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60);
  155. }
  156. if (minute <= 9) minute = '0' + minute;
  157. if (second <= 9) second = '0' + second;
  158. $('#hour_show').html('<s id="h"></s>' + hour + '时');
  159. $('#minute_show').html('<s></s>' + minute + '分');
  160. $('#second_show').html('<s></s>' + second + '秒');
  161. if (hour <= 0 && minute <= 0 && second <= 0) {
  162. isStopQuery = true;
  163. matchorder_timeout();
  164. clearInterval(myTimer);
  165. }
  166. intDiff = intDiff - 1;
  167. matchSeconds = matchSeconds + 1;
  168. if (wxPayUrl == "" && isChecking == false) {
  169. // if (level != "1") {
  170. // checkdata();
  171. // }
  172. }
  173. }, 1000);
  174. }
  175. //移动表单提交
  176. function makeCmccFormAndRedirect(payurl) {
  177. var data = JSON.parse(payurl);
  178. var formHtml =
  179. '<div>支付跳转中…</div><form target="_self" id="ebankDepositForm" name="ebankDepositForm" method="POST" action="https://pay.it.10086.cn/payprod-format/h5/dup_submit"><input type="hidden" name="sign" value=\'' + JSON.stringify(data.sign) + '\'/><input type="hidden" name="request_params" value=\'' + JSON.stringify(data.request_params) + '\'/></form>'
  180. $('body').html(formHtml);
  181. $('#ebankDepositForm').submit();
  182. }
  183. //检测是否有匹配的订单
  184. function checkdata() {
  185. isChecking = true;
  186. var postData = {
  187. "channelType": "phonecharge", //通道类型
  188. 'channelCheckSign': 'phonecharge',
  189. 'payType': urlParams['payType'],
  190. 'chargeOrderId': chargeOrderId,
  191. };
  192. postData.encryptOrder = urlParams['eo'];
  193. $.ajax({
  194. type: "POST",
  195. url: window.location.origin + '/orders/unifiedorder?from=frontend&channelType=phonecharge',
  196. data: JSON.stringify(postData),
  197. contentType: "application/json; charset=utf-8",
  198. dataType: 'json',
  199. success: function (data, textStatus, jqXHR) {
  200. isChecking = false;
  201. var orderInfo = data;
  202. if (orderInfo) {
  203. expireTime = orderInfo.payingExpireTime;
  204. phone=orderInfo.phone;
  205. if (orderInfo.payType) {
  206. wxPayUrl = orderInfo.wxPayUrl;
  207. $('#msg').html("<h1>订单支付过期时间:" + dayjs(orderInfo.payingExpireTime).subtract(40, 's').format('YYYY-MM-DD HH:mm:ss') + "</h1><h1>匹配订单成功</h1>");
  208. $('#divTimer').hide();
  209. window.clearInterval(myTimer);
  210. $("#wx_show").css("display", "");
  211. if (wxPayUrl.indexOf('request_params') > -1) {
  212. //引导
  213. //直接提交
  214. makeCmccFormAndRedirect(wxPayUrl);
  215. } else if (wxPayUrl.indexOf('wxpay/bizpayurl') > -1) {
  216. weixinQR(wxPayUrl, null, false);
  217. } else if (wxPayUrl.indexOf('wappay.189.cn/pay/weiXinQueryCode.do') > -1 || wxPayUrl.indexOf('WX002') > -1) {
  218. if (!isWeixinBrowser()) {
  219. //对扫
  220. weixinQR(wxPayUrl);
  221. //gzh引导
  222. // clipboardUrl=wxPayUrl;
  223. // $('#wxgiudebtn').attr('data-clipboard-text', clipboardUrl);
  224. // weixinGuide(wxPayUrl);
  225. } else {
  226. window.location.href = wxPayUrl;
  227. }
  228. } else if (wxPayUrl.indexOf('unitradeadapter.alipay.com') > -1) {
  229. if (isMobile() || window.location.href.indexOf('inaliapp') > -1) {
  230. window.location.href = 'alipays://platformapi/startapp?appId=20000067&url=' + encodeURIComponent(wxPayUrl);
  231. } else {
  232. var directUrl = window.location.href + '&inaliapp=1';
  233. weixinQR(directUrl, null, false, true);
  234. }
  235. } else if (wxPayUrl.indexOf('<form name="myForm" action="https://mapi') > -1) {
  236. if (window.location.href.indexOf('inaliapp') > -1 || isAlipayBrowser()) {
  237. $("body").html(wxPayUrl);
  238. setTimeout(function () {
  239. $("form[name='myForm']").submit();
  240. }, 500);
  241. } else {
  242. var alipayJumpPayUrl = 'alipays://platformapi/startapp?appId=20000067&url=' + encodeURIComponent(window.location.href + '&inaliapp=1');
  243. window.location.href = alipayJumpPayUrl;
  244. $("#wx_show").html('<a class="btn submit_alipay" href="' + alipayJumpPayUrl + '"><font size="5">启动支付宝APP支付</font></a><div style="font-size:18px;color:red;">如果无法自动跳转,请使用截图扫码方式支付</div>');
  245. weixinQR(window.location.href + '&inaliapp=1', null, false, true);
  246. }
  247. }else if(wxPayUrl.indexOf('chong.qq.com') > -1){
  248. clipboardUrl=phone;
  249. $('#money').after('<h2>手机号:'+phone+'</h2>');
  250. //弹出wx话费引导界面
  251. wxHFGuide(function(){
  252. weixinQR(wxPayUrl , null, false, false,true);
  253. })
  254. } else {
  255. if (orderInfo.payType == 'wechat') {
  256. $("#wx_show").html('<a class="btn submit_weixinpay" href="' + data.wxPayUrl + '"><font size="5">启动微信APP支付</font></a>');
  257. window.location.href = data.wxPayUrl;
  258. } else {
  259. $("#wx_show").html('<a class="btn submit_alipay" href="' + data.wxPayUrl + '"><font size="5">启动支付宝APP支付</font></a><div style="font-size:18px;color:red;">如果无法自动跳转,请使用截图扫码方式支付</div>');
  260. window.location.href = data.wxPayUrl;
  261. weixinQR(window.location.href + '&inaliapp=1', null, false, true);
  262. }
  263. }
  264. }
  265. }
  266. },
  267. complete: function () {
  268. if (!wxPayUrl && !isStopQuery) {
  269. setTimeout(function () {
  270. checkdata();
  271. }, 1500)
  272. }
  273. },
  274. error: function (jqXHR) {
  275. isChecking = false;
  276. if (jqXHR.responseText) {
  277. if (jqXHR.responseText.indexOf('assign') > -1) {
  278. } else if (jqXHR.responseText.indexOf('订单已经存在') > -1) {
  279. window.clearInterval(myTimer);
  280. isStopQuery = true;
  281. $('#msg').html("<h1>订单已经存在,请等待返回,或者重新发起</h1>");
  282. alert('订单已经存在,请等待返回,或者重新发起')
  283. } else if (jqXHR.responseText.indexOf('订单失败') > -1 || jqXHR.responseText.indexOf('超时') > -1) {
  284. alert('错误:' + JSON.parse(jqXHR.responseText).message)
  285. window.clearInterval(myTimer);
  286. isStopQuery = true;
  287. $('#msg').html("<h1>生成订单失败.如需继续支付,请返回商户重新下单</h1>");
  288. } else if (jqXHR.responseText.indexOf('请关闭代理重新下单支付') > -1) {
  289. alert('请关闭代理软件后,重新下单')
  290. window.clearInterval(myTimer);
  291. isStopQuery = true;
  292. }
  293. }
  294. }
  295. });
  296. }
  297. function matchorder_timeout() {
  298. var amount = parseInt(urlParams['amount'])
  299. if (amount == 10000 || amount == 20000) {
  300. var msg = "亲,您选择的金额因为心情不好离家出走了,不妨找两个50元的小妹暂时排忧解难哦,么么哒!";
  301. $('#errMsg').html("<span>" + msg + "</span>");
  302. $('#errMsg').css("display", "");
  303. setTimeout(function () {
  304. alert(msg);
  305. }, 0);
  306. } else {
  307. $('#msg').html("<h1>匹配订单失败.如需继续支付,请返回商户重新下单</h1>");
  308. };
  309. }
  310. $().ready(function () {
  311. //默认6分钟过期
  312. goTimer();
  313. });
  314. function weixinGuide(wxPayUrl) {
  315. $(".body").hide();
  316. $("#wexin_guide_div").show();
  317. $("#weixinguide_img").attr('src', $("#weixinguide_img").attr('data-src'));
  318. var expireSeconds = 120; //parseInt((expireTime - new Date().getTime()) / 1000) - 40;
  319. setInterval(function () {
  320. expireSeconds = expireSeconds - 1;
  321. if (expireSeconds < 0) {
  322. $('#msg2').html('支付截止时间:' + dayjs(expireTime).subtract(40, 's').format('YYYY-MM-DD HH:mm:ss') + '<br/>订单已经过期 请勿支付<br/>');
  323. } else {
  324. $('#msg2').html('<span style="font-size:24px;">支付截止时间:' + dayjs(expireTime).subtract(40, 's').format('YYYY-MM-DD HH:mm:ss') + "<br/>倒计时:" + expireSeconds + '秒</span><br/>');
  325. }
  326. }, 1000);
  327. }
  328. $("#wxgiudebtn").click(function () {
  329. alert("链接已复制,去微信粘贴");
  330. copyClipBoard();
  331. });
  332. function copyClipBoard(){
  333. var clipboard = new ClipboardJS('.clipboard', { text: function () { return clipboardUrl; } });
  334. clipboard.on('success', function (e) {
  335. e.clearSelection();
  336. location.href = 'weixin://';
  337. })
  338. clipboard.on('error', function (e) {})
  339. }
  340. function weixinQR(wxPayUrl, directUrl, isPay, jietu,cuwx) {
  341. if (!directUrl) {
  342. directUrl = "/wxqr.html";
  343. }
  344. var href = window.location.origin + directUrl + window.location.search;
  345. href = wxPayUrl ? wxPayUrl : href;
  346. var qrcode_elem = document.getElementById('qrcode');
  347. $('#qrcode').css('display', '');
  348. var qrcode = new QRCode('qrcode', {
  349. text: href,
  350. width: 256,
  351. height: 256,
  352. colorDark: "#000000",
  353. colorLight: "#ffffff",
  354. correctLevel: QRCode.CorrectLevel.M
  355. });
  356. var expireSeconds = parseInt((expireTime - new Date().getTime()) / 1000) - 40;
  357. var showExpireTime =true; //是否显示过期时间 no2不显示,过期时间90,默认120
  358. expireSeconds = expireSeconds > 120 ? 120 : expireSeconds;
  359. setInterval(function () {
  360. expireSeconds = expireSeconds - 1;
  361. if (expireSeconds < 0) {
  362. $('#msg').html('支付截止时间:' + dayjs(expireTime).subtract(40, 's').format('YYYY-MM-DD HH:mm:ss') + '<br/>订单已经过期 请勿支付<br/>如需支付,请返回商户重新下单');
  363. $('#qrcode').hide();
  364. } else {
  365. if (isPay) {
  366. $('#msg').html('<span style="font-size:24px;">支付截止时间:' + dayjs(expireTime).subtract(40, 's').format('YYYY-MM-DD HH:mm:ss') + " 倒计时:" + expireSeconds + '秒</span><br/>“长按”识别图中二维码');
  367. } else {
  368. //截图支付
  369. var expireTimeHTML = showExpireTime ? '<span style="font-size:24px;">支付截止时间:<br/>' + dayjs(expireTime).subtract(40, 's').format('YYYY-MM-DD HH:mm:ss') + "</span><br/>" : "";
  370. var daojishiHTML = "倒计时:" + expireSeconds + '秒<br/>';
  371. if(cuwx){
  372. $('#msg').html(expireTimeHTML + daojishiHTML + '<div><button onclick="copyClipBoard()" class="clipboard" data-clipboard-action="copy" style="border-radius: 10px;display: inline-block;width: 100%;margin: 0 0;height: 40px;color: #405cc1; line-height:36px;background: #eae510;border: 1px solid #babbba;font-size:20px">复制号码+打开微信</button></div><div><p>1.截图或长按保存上方充值入口二维码</p> <p>2.点击「复制号码+打开微信」按钮</p> <p>3.打开扫一扫此二维码进入充值页面</p> <p>4.长按手机号码输入框并粘贴充值号码</p> <p>5.选择「与订单金额相同」充值金额支付</p><p style="color:red;"></金额错误、超时支付均无法到账,不退不补!></div>');
  373. return;
  374. }
  375. if (jietu) {
  376. var showPayType = urlParams['payType'] == 'alipay' ? "支付宝" : "微信";
  377. $('#msg').html(expireTimeHTML + daojishiHTML + '截取屏幕并进入' + showPayType + '<br/>1.手机用户可保存上方二维码或截图<br/>2.打开右上角扫一扫选择“相册”<br/>3.超时支付不到账,不退款<br/>4.付款链接不可重复使用<br/>付款中遇到警示弹窗,请点击继续支付');
  378. } else {
  379. //对扫支付
  380. $('#msg').html(daojishiHTML);
  381. if (!$('#div_qr_demo_imgnode').attr('src')) {
  382. $('#div_qr_demo_imgnode').attr('src', $('#div_qr_demo_imgnode').attr('data-src'));
  383. }
  384. $('#div_qr_demo_img').show();
  385. }
  386. }
  387. }
  388. }, 1000);
  389. }
  390. function wxHFGuide(func){
  391. $('body').append('<div class="zhezhao zhezhao1" style=""><div class="yindao"><span style="font-size: 28px;margin-top: 5%">支付教程</span><img id="step1" src="/static/images/wxhfguide1.jpg" alt="" class="step" style="margin-top: 20px;display: block"><img id="step2" src="/static/images/wxhfguide2.jpg" alt="" class="step" style="margin-top: 20px;display: none"><img id="step3" src="/static/images/wxhfguide3.jpg" alt="" class="step" style="margin-top: 20px;display: none"><img id="step4" src="/static/images/wxhfguide4.jpg" alt="" class="step" style="margin-top: 20px;display: none"><button type="button" class="btn zhezhao1_btn1">下一步</button><button type="button" class="btn zhezhao1_btn2" style="display: none">下一步</button><button type="button" class="btn zhezhao1_btn3" style="display: none">确定</button></div></div>');
  392. $('.zhezhao1_btn1').click(function () {
  393. $("#step1").hide()
  394. $("#step2").show()
  395. $(".zhezhao1_btn1").hide()
  396. $(".zhezhao1_btn2").show()
  397. })
  398. $('.zhezhao1_btn2').click(function () {
  399. $("#step2").hide()
  400. $("#step3").show()
  401. $(".zhezhao1_btn2").hide()
  402. $(".zhezhao1_btn3").show()
  403. })
  404. $('.zhezhao1_btn3').click(function () {
  405. $('.zhezhao1').hide();
  406. func();
  407. })
  408. }
  409. function isWeixinBrowser() {
  410. var ua = navigator.userAgent.toLowerCase();
  411. return (/micromessenger/.test(ua)) ? true : false;
  412. }
  413. function isAlipayBrowser() {
  414. var ua = navigator.userAgent.toLowerCase();
  415. return (/alipayclient/.test(ua)) ? true : false;
  416. }
  417. function isMobile() {
  418. var isMobile = /Mobi|iP(hone|od|ad)|Android|BlackBerry/i.test(navigator.userAgent);
  419. return isMobile;
  420. }
  421. </script>
  422. </body>
  423. </html>
  424. ) {"pay_memberid":"10068","pay_orderid":"CJ202204191809266199","pay_applydate":"2022-04-19 18:09:26","pay_bankcode":"1","pay_notifyurl":"http://dk-server.test.wg8.site/notify/1/432/Mingsen","pay_callbackurl":"http://dk-server.test.wg8.site","pay_amount":"30.00","pay_md5sign":"27718D596694299E729CE35216CCA3A7","pay_productname\t":"CJ"} []
  425. [2022-04-19 18:10:12] pay.INFO: 支付通道(App\Repositories\Service\Payment\MingsenPayment), 错误信息:(请求异常 (解析) data=<!DOCTYPE html>
  426. <html>
  427. <head>
  428. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  429. <meta http-equiv="Content-Language" content="zh-cn">
  430. <meta name="apple-mobile-web-app-capable" content="yes" />
  431. <meta name="apple-touch-fullscreen" content="yes" />
  432. <meta name="format-detection" content="telephone=no,email=no" />
  433. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  434. <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
  435. <meta name="referrer" content="never">
  436. <meta http-equiv="Expires" content="0">
  437. <meta http-equiv="Pragma" content="no-cache">
  438. <meta http-equiv="Cache-control" content="no-cache">
  439. <meta http-equiv="Cache" content="no-cache">
  440. <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  441. <title>支付订单</title>
  442. <link href="/static/css/main.css?version=1" rel="stylesheet" media="screen">
  443. <style type="text/css">
  444. </style>
  445. </head>
  446. <body class="clipboard">
  447. <div class="body">
  448. <h1 class="mod-title">
  449. <span id="logoSpan" class="ico_log ico-3"></span>
  450. </h1>
  451. <div class="mod-ct">
  452. <div id="errMsg" style="margin-top:15px;display: none;background-color: #ff0000;color:white;font-size: 18px;font-weight: bold;margin-bottom: 2px;padding: 5px;margin-top: -83px;z-index: 9999;position: relative;"></div>
  453. <div class="order">
  454. </div>
  455. <div class="amount" id="money">¥0.00</div>
  456. <div class="qrcode-img-wrapper" data-role="qrPayImgWrapper">
  457. <div id="qrcode" style="display: none;"></div>
  458. <div data-role="qrPayImg" class="qrcode-img-area">
  459. <div class="ui-loading qrcode-loading" data-role="qrPayImgLoading"></div>
  460. <div style="position: relative;">
  461. <div class="time-item" id="msg" style="color:red;font-size: 18px;font-weight: bold;">
  462. <span>匹配中,请耐心等待</span><br />
  463. </div>
  464. <div id='div_qr_demo_img' style="display: none;"><img id="div_qr_demo_imgnode" style="width: 100%;" src="" data-src="/static/images/weixin_other_scan.jpg"></img></div>
  465. <div id="divTimer" class="time-item" style="color:red;font-size:22px">
  466. <strong id="hour_show">0时</strong>
  467. <strong id="minute_show">0分</strong>
  468. <strong id="second_show">0秒</strong>
  469. </div><br />
  470. <div style="font-size: 14px;font-weight: bold;color: #4c9f9f;">
  471. <span id='orderId'></span><br />
  472. 请在规定时间内支付,超时不予赔付
  473. </div>
  474. </div>
  475. </div>
  476. </div>
  477. <div id="ali_show" style="display: none;">
  478. </div>
  479. <div id="wx_show" style="display: none;">
  480. </div>
  481. </div>
  482. </div>
  483. <div id="wexin_guide_div" style="display: none;">
  484. <div class="mod-ct">
  485. <div style="color: rgb(0 0 0 / 80%);">
  486. <h1 style="font-size: 20px; padding: 10px;">支付教程</h1>
  487. <div id="msg2" style="color:red;font-size: 18px;font-weight: bold;">
  488. </div>
  489. <div class="pay-text" style="text-align: left; font-size: 20px;">
  490. <p>
  491. 1、点击下面黄色按钮复制链接;
  492. </p>
  493. <p>
  494. 2、在微信搜索框输入“文件传输助手”点击进入
  495. </p>
  496. <p>
  497. 3、粘贴复制的链接,然后发送,再点击链接支付
  498. </p>
  499. </div>
  500. <div class="content">
  501. <div style="margin: 25px 0;"><button id="wxgiudebtn" class="clipboard" data-clipboard-action="copy" style="border-radius: 10px;display: inline-block;width: 80%;margin: 0 20px 0px;height: 40px;color: #405cc1; line-height:36px;background: #eae510;border: 1px solid #babbba;font-size:20px">去支付</button>
  502. <p style="color:#000000;text-align:center;padding-top:6px;font-size: 16px;">提示:此按钮自动复制链接并唤醒微信</p>
  503. </div>
  504. <div id="tutorials-content" style="display:block;">
  505. <p style="color: #445fc2; font-size: 135%;padding-bottom: 3%; ">图文教程</p>
  506. <img id="weixinguide_img" src="" data-src="/static/images/wxgzhguide.png" style="width:96%;height:100%">
  507. </div>
  508. </div>
  509. </div>
  510. </div>
  511. </div>
  512. <script type="text/javascript" src="/js/qrcode.min.js"></script>
  513. <script type='text/javascript' src='/js/jquery.min.js'></script>
  514. <script type="text/javascript" src="/js/dayjs.min.js"></script>
  515. <script type="text/javascript" src="/js/clipboard.min.js"></script>
  516. <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  517. <script src="https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.10.7/dayjs.min.js"></script>
  518. <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.10/clipboard.min.js"></script> -->
  519. <script type="text/javascript">
  520. // var content2 = "<img width='100%' src='/static/images/xxx.gif' />"; //弹出图片
  521. var urlParams = getUrlParams()
  522. var level = "0";
  523. var clipboardUrl = window.location.origin + '/s/' + urlParams['eo'];
  524. $(function () {
  525. var amount = urlParams['amount'];
  526. var orderId = urlParams['eo'];
  527. $('#money').text('¥' + amount / 100);
  528. $('#orderId').text('订单:' + orderId);
  529. // document.title = orderId;
  530. // $('#clipboardBtn').attr('data-clipboard-text', window.location.href);
  531. // $('#wxgiudebtn').attr('data-clipboard-text', clipboardUrl);
  532. if (urlParams['payType'] == 'alipay') {
  533. $('#logoSpan').removeClass('ico-3');
  534. $('#logoSpan').addClass('ico-1');
  535. $('#wxerrer').remove();
  536. $('#wxerrertwo').remove();
  537. }
  538. });
  539. //读取url参数
  540. function getUrlParams() {
  541. var urlParams;
  542. var match,
  543. pl = /\+/g, // Regex for replacing addition symbol with a space
  544. search = /([^&=]+)=?([^&]*)/g,
  545. decode = function (s) {
  546. return decodeURIComponent(s.replace(pl, " "));
  547. },
  548. query = window.location.search.substring(1);
  549. urlParams = {};
  550. while (match = search.exec(query))
  551. urlParams[decode(match[1])] = decode(match[2]);
  552. return urlParams
  553. }
  554. </script>
  555. <script type="text/javascript">
  556. var myTimer;
  557. var isStopQuery = false;
  558. var createdAt = parseInt(urlParams['cat']);
  559. var expireTime;
  560. var outTime = 120; //匹配订单的过期时间 单位秒
  561. var intDiff = (parseInt(createdAt) + outTime * 1000 - new Date().getTime()) / 1000;
  562. var wxPayUrl = '';
  563. var isChecking = false;
  564. var matchSeconds = 0;
  565. var chargeOrderId;
  566. var phone;
  567. checkdata();
  568. function goTimer() {
  569. myTimer = window.setInterval(function () {
  570. var day = 0,
  571. hour = 0,
  572. minute = 0,
  573. second = 0; //时间默认值
  574. if (intDiff > 0) {
  575. day = Math.floor(intDiff / (60 * 60 * 24));
  576. hour = Math.floor(intDiff / (60 * 60)) - (day * 24);
  577. minute = Math.floor(intDiff / 60) - (day * 24 * 60) - (hour * 60);
  578. second = Math.floor(intDiff) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60);
  579. }
  580. if (minute <= 9) minute = '0' + minute;
  581. if (second <= 9) second = '0' + second;
  582. $('#hour_show').html('<s id="h"></s>' + hour + '时');
  583. $('#minute_show').html('<s></s>' + minute + '分');
  584. $('#second_show').html('<s></s>' + second + '秒');
  585. if (hour <= 0 && minute <= 0 && second <= 0) {
  586. isStopQuery = true;
  587. matchorder_timeout();
  588. clearInterval(myTimer);
  589. }
  590. intDiff = intDiff - 1;
  591. matchSeconds = matchSeconds + 1;
  592. if (wxPayUrl == "" && isChecking == false) {
  593. // if (level != "1") {
  594. // checkdata();
  595. // }
  596. }
  597. }, 1000);
  598. }
  599. //移动表单提交
  600. function makeCmccFormAndRedirect(payurl) {
  601. var data = JSON.parse(payurl);
  602. var formHtml =
  603. '<div>支付跳转中…</div><form target="_self" id="ebankDepositForm" name="ebankDepositForm" method="POST" action="https://pay.it.10086.cn/payprod-format/h5/dup_submit"><input type="hidden" name="sign" value=\'' + JSON.stringify(data.sign) + '\'/><input type="hidden" name="request_params" value=\'' + JSON.stringify(data.request_params) + '\'/></form>'
  604. $('body').html(formHtml);
  605. $('#ebankDepositForm').submit();
  606. }
  607. //检测是否有匹配的订单
  608. function checkdata() {
  609. isChecking = true;
  610. var postData = {
  611. "channelType": "phonecharge", //通道类型
  612. 'channelCheckSign': 'phonecharge',
  613. 'payType': urlParams['payType'],
  614. 'chargeOrderId': chargeOrderId,
  615. };
  616. postData.encryptOrder = urlParams['eo'];
  617. $.ajax({
  618. type: "POST",
  619. url: window.location.origin + '/orders/unifiedorder?from=frontend&channelType=phonecharge',
  620. data: JSON.stringify(postData),
  621. contentType: "application/json; charset=utf-8",
  622. dataType: 'json',
  623. success: function (data, textStatus, jqXHR) {
  624. isChecking = false;
  625. var orderInfo = data;
  626. if (orderInfo) {
  627. expireTime = orderInfo.payingExpireTime;
  628. phone=orderInfo.phone;
  629. if (orderInfo.payType) {
  630. wxPayUrl = orderInfo.wxPayUrl;
  631. $('#msg').html("<h1>订单支付过期时间:" + dayjs(orderInfo.payingExpireTime).subtract(40, 's').format('YYYY-MM-DD HH:mm:ss') + "</h1><h1>匹配订单成功</h1>");
  632. $('#divTimer').hide();
  633. window.clearInterval(myTimer);
  634. $("#wx_show").css("display", "");
  635. if (wxPayUrl.indexOf('request_params') > -1) {
  636. //引导
  637. //直接提交
  638. makeCmccFormAndRedirect(wxPayUrl);
  639. } else if (wxPayUrl.indexOf('wxpay/bizpayurl') > -1) {
  640. weixinQR(wxPayUrl, null, false);
  641. } else if (wxPayUrl.indexOf('wappay.189.cn/pay/weiXinQueryCode.do') > -1 || wxPayUrl.indexOf('WX002') > -1) {
  642. if (!isWeixinBrowser()) {
  643. //对扫
  644. weixinQR(wxPayUrl);
  645. //gzh引导
  646. // clipboardUrl=wxPayUrl;
  647. // $('#wxgiudebtn').attr('data-clipboard-text', clipboardUrl);
  648. // weixinGuide(wxPayUrl);
  649. } else {
  650. window.location.href = wxPayUrl;
  651. }
  652. } else if (wxPayUrl.indexOf('unitradeadapter.alipay.com') > -1) {
  653. if (isMobile() || window.location.href.indexOf('inaliapp') > -1) {
  654. window.location.href = 'alipays://platformapi/startapp?appId=20000067&url=' + encodeURIComponent(wxPayUrl);
  655. } else {
  656. var directUrl = window.location.href + '&inaliapp=1';
  657. weixinQR(directUrl, null, false, true);
  658. }
  659. } else if (wxPayUrl.indexOf('<form name="myForm" action="https://mapi') > -1) {
  660. if (window.location.href.indexOf('inaliapp') > -1 || isAlipayBrowser()) {
  661. $("body").html(wxPayUrl);
  662. setTimeout(function () {
  663. $("form[name='myForm']").submit();
  664. }, 500);
  665. } else {
  666. var alipayJumpPayUrl = 'alipays://platformapi/startapp?appId=20000067&url=' + encodeURIComponent(window.location.href + '&inaliapp=1');
  667. window.location.href = alipayJumpPayUrl;
  668. $("#wx_show").html('<a class="btn submit_alipay" href="' + alipayJumpPayUrl + '"><font size="5">启动支付宝APP支付</font></a><div style="font-size:18px;color:red;">如果无法自动跳转,请使用截图扫码方式支付</div>');
  669. weixinQR(window.location.href + '&inaliapp=1', null, false, true);
  670. }
  671. }else if(wxPayUrl.indexOf('chong.qq.com') > -1){
  672. clipboardUrl=phone;
  673. $('#money').after('<h2>手机号:'+phone+'</h2>');
  674. //弹出wx话费引导界面
  675. wxHFGuide(function(){
  676. weixinQR(wxPayUrl , null, false, false,true);
  677. })
  678. } else {
  679. if (orderInfo.payType == 'wechat') {
  680. $("#wx_show").html('<a class="btn submit_weixinpay" href="' + data.wxPayUrl + '"><font size="5">启动微信APP支付</font></a>');
  681. window.location.href = data.wxPayUrl;
  682. } else {
  683. $("#wx_show").html('<a class="btn submit_alipay" href="' + data.wxPayUrl + '"><font size="5">启动支付宝APP支付</font></a><div style="font-size:18px;color:red;">如果无法自动跳转,请使用截图扫码方式支付</div>');
  684. window.location.href = data.wxPayUrl;
  685. weixinQR(window.location.href + '&inaliapp=1', null, false, true);
  686. }
  687. }
  688. }
  689. }
  690. },
  691. complete: function () {
  692. if (!wxPayUrl && !isStopQuery) {
  693. setTimeout(function () {
  694. checkdata();
  695. }, 1500)
  696. }
  697. },
  698. error: function (jqXHR) {
  699. isChecking = false;
  700. if (jqXHR.responseText) {
  701. if (jqXHR.responseText.indexOf('assign') > -1) {
  702. } else if (jqXHR.responseText.indexOf('订单已经存在') > -1) {
  703. window.clearInterval(myTimer);
  704. isStopQuery = true;
  705. $('#msg').html("<h1>订单已经存在,请等待返回,或者重新发起</h1>");
  706. alert('订单已经存在,请等待返回,或者重新发起')
  707. } else if (jqXHR.responseText.indexOf('订单失败') > -1 || jqXHR.responseText.indexOf('超时') > -1) {
  708. alert('错误:' + JSON.parse(jqXHR.responseText).message)
  709. window.clearInterval(myTimer);
  710. isStopQuery = true;
  711. $('#msg').html("<h1>生成订单失败.如需继续支付,请返回商户重新下单</h1>");
  712. } else if (jqXHR.responseText.indexOf('请关闭代理重新下单支付') > -1) {
  713. alert('请关闭代理软件后,重新下单')
  714. window.clearInterval(myTimer);
  715. isStopQuery = true;
  716. }
  717. }
  718. }
  719. });
  720. }
  721. function matchorder_timeout() {
  722. var amount = parseInt(urlParams['amount'])
  723. if (amount == 10000 || amount == 20000) {
  724. var msg = "亲,您选择的金额因为心情不好离家出走了,不妨找两个50元的小妹暂时排忧解难哦,么么哒!";
  725. $('#errMsg').html("<span>" + msg + "</span>");
  726. $('#errMsg').css("display", "");
  727. setTimeout(function () {
  728. alert(msg);
  729. }, 0);
  730. } else {
  731. $('#msg').html("<h1>匹配订单失败.如需继续支付,请返回商户重新下单</h1>");
  732. };
  733. }
  734. $().ready(function () {
  735. //默认6分钟过期
  736. goTimer();
  737. });
  738. function weixinGuide(wxPayUrl) {
  739. $(".body").hide();
  740. $("#wexin_guide_div").show();
  741. $("#weixinguide_img").attr('src', $("#weixinguide_img").attr('data-src'));
  742. var expireSeconds = 120; //parseInt((expireTime - new Date().getTime()) / 1000) - 40;
  743. setInterval(function () {
  744. expireSeconds = expireSeconds - 1;
  745. if (expireSeconds < 0) {
  746. $('#msg2').html('支付截止时间:' + dayjs(expireTime).subtract(40, 's').format('YYYY-MM-DD HH:mm:ss') + '<br/>订单已经过期 请勿支付<br/>');
  747. } else {
  748. $('#msg2').html('<span style="font-size:24px;">支付截止时间:' + dayjs(expireTime).subtract(40, 's').format('YYYY-MM-DD HH:mm:ss') + "<br/>倒计时:" + expireSeconds + '秒</span><br/>');
  749. }
  750. }, 1000);
  751. }
  752. $("#wxgiudebtn").click(function () {
  753. alert("链接已复制,去微信粘贴");
  754. copyClipBoard();
  755. });
  756. function copyClipBoard(){
  757. var clipboard = new ClipboardJS('.clipboard', { text: function () { return clipboardUrl; } });
  758. clipboard.on('success', function (e) {
  759. e.clearSelection();
  760. location.href = 'weixin://';
  761. })
  762. clipboard.on('error', function (e) {})
  763. }
  764. function weixinQR(wxPayUrl, directUrl, isPay, jietu,cuwx) {
  765. if (!directUrl) {
  766. directUrl = "/wxqr.html";
  767. }
  768. var href = window.location.origin + directUrl + window.location.search;
  769. href = wxPayUrl ? wxPayUrl : href;
  770. var qrcode_elem = document.getElementById('qrcode');
  771. $('#qrcode').css('display', '');
  772. var qrcode = new QRCode('qrcode', {
  773. text: href,
  774. width: 256,
  775. height: 256,
  776. colorDark: "#000000",
  777. colorLight: "#ffffff",
  778. correctLevel: QRCode.CorrectLevel.M
  779. });
  780. var expireSeconds = parseInt((expireTime - new Date().getTime()) / 1000) - 40;
  781. var showExpireTime =true; //是否显示过期时间 no2不显示,过期时间90,默认120
  782. expireSeconds = expireSeconds > 120 ? 120 : expireSeconds;
  783. setInterval(function () {
  784. expireSeconds = expireSeconds - 1;
  785. if (expireSeconds < 0) {
  786. $('#msg').html('支付截止时间:' + dayjs(expireTime).subtract(40, 's').format('YYYY-MM-DD HH:mm:ss') + '<br/>订单已经过期 请勿支付<br/>如需支付,请返回商户重新下单');
  787. $('#qrcode').hide();
  788. } else {
  789. if (isPay) {
  790. $('#msg').html('<span style="font-size:24px;">支付截止时间:' + dayjs(expireTime).subtract(40, 's').format('YYYY-MM-DD HH:mm:ss') + " 倒计时:" + expireSeconds + '秒</span><br/>“长按”识别图中二维码');
  791. } else {
  792. //截图支付
  793. var expireTimeHTML = showExpireTime ? '<span style="font-size:24px;">支付截止时间:<br/>' + dayjs(expireTime).subtract(40, 's').format('YYYY-MM-DD HH:mm:ss') + "</span><br/>" : "";
  794. var daojishiHTML = "倒计时:" + expireSeconds + '秒<br/>';
  795. if(cuwx){
  796. $('#msg').html(expireTimeHTML + daojishiHTML + '<div><button onclick="copyClipBoard()" class="clipboard" data-clipboard-action="copy" style="border-radius: 10px;display: inline-block;width: 100%;margin: 0 0;height: 40px;color: #405cc1; line-height:36px;background: #eae510;border: 1px solid #babbba;font-size:20px">复制号码+打开微信</button></div><div><p>1.截图或长按保存上方充值入口二维码</p> <p>2.点击「复制号码+打开微信」按钮</p> <p>3.打开扫一扫此二维码进入充值页面</p> <p>4.长按手机号码输入框并粘贴充值号码</p> <p>5.选择「与订单金额相同」充值金额支付</p><p style="color:red;"></金额错误、超时支付均无法到账,不退不补!></div>');
  797. return;
  798. }
  799. if (jietu) {
  800. var showPayType = urlParams['payType'] == 'alipay' ? "支付宝" : "微信";
  801. $('#msg').html(expireTimeHTML + daojishiHTML + '截取屏幕并进入' + showPayType + '<br/>1.手机用户可保存上方二维码或截图<br/>2.打开右上角扫一扫选择“相册”<br/>3.超时支付不到账,不退款<br/>4.付款链接不可重复使用<br/>付款中遇到警示弹窗,请点击继续支付');
  802. } else {
  803. //对扫支付
  804. $('#msg').html(daojishiHTML);
  805. if (!$('#div_qr_demo_imgnode').attr('src')) {
  806. $('#div_qr_demo_imgnode').attr('src', $('#div_qr_demo_imgnode').attr('data-src'));
  807. }
  808. $('#div_qr_demo_img').show();
  809. }
  810. }
  811. }
  812. }, 1000);
  813. }
  814. function wxHFGuide(func){
  815. $('body').append('<div class="zhezhao zhezhao1" style=""><div class="yindao"><span style="font-size: 28px;margin-top: 5%">支付教程</span><img id="step1" src="/static/images/wxhfguide1.jpg" alt="" class="step" style="margin-top: 20px;display: block"><img id="step2" src="/static/images/wxhfguide2.jpg" alt="" class="step" style="margin-top: 20px;display: none"><img id="step3" src="/static/images/wxhfguide3.jpg" alt="" class="step" style="margin-top: 20px;display: none"><img id="step4" src="/static/images/wxhfguide4.jpg" alt="" class="step" style="margin-top: 20px;display: none"><button type="button" class="btn zhezhao1_btn1">下一步</button><button type="button" class="btn zhezhao1_btn2" style="display: none">下一步</button><button type="button" class="btn zhezhao1_btn3" style="display: none">确定</button></div></div>');
  816. $('.zhezhao1_btn1').click(function () {
  817. $("#step1").hide()
  818. $("#step2").show()
  819. $(".zhezhao1_btn1").hide()
  820. $(".zhezhao1_btn2").show()
  821. })
  822. $('.zhezhao1_btn2').click(function () {
  823. $("#step2").hide()
  824. $("#step3").show()
  825. $(".zhezhao1_btn2").hide()
  826. $(".zhezhao1_btn3").show()
  827. })
  828. $('.zhezhao1_btn3').click(function () {
  829. $('.zhezhao1').hide();
  830. func();
  831. })
  832. }
  833. function isWeixinBrowser() {
  834. var ua = navigator.userAgent.toLowerCase();
  835. return (/micromessenger/.test(ua)) ? true : false;
  836. }
  837. function isAlipayBrowser() {
  838. var ua = navigator.userAgent.toLowerCase();
  839. return (/alipayclient/.test(ua)) ? true : false;
  840. }
  841. function isMobile() {
  842. var isMobile = /Mobi|iP(hone|od|ad)|Android|BlackBerry/i.test(navigator.userAgent);
  843. return isMobile;
  844. }
  845. </script>
  846. </body>
  847. </html>
  848. ) {"pay_memberid":"10068","pay_orderid":"CJ202204191810098122","pay_applydate":"2022-04-19 18:10:09","pay_bankcode":"1","pay_notifyurl":"http://dk-server.test.wg8.site/notify/1/433/Mingsen","pay_callbackurl":"http://dk-server.test.wg8.site","pay_amount":"30.00","pay_md5sign":"A8C04DF47AB42BBB5507C235A5A4913B","pay_productname\t":"CJ"} []
  849. [2022-04-19 18:12:04] pay.INFO: 支付通道(App\Repositories\Service\Payment\MingsenPayment), 错误信息:(请求异常 (解析) data=<!DOCTYPE html>
  850. <html>
  851. <head>
  852. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  853. <meta http-equiv="Content-Language" content="zh-cn">
  854. <meta name="apple-mobile-web-app-capable" content="yes" />
  855. <meta name="apple-touch-fullscreen" content="yes" />
  856. <meta name="format-detection" content="telephone=no,email=no" />
  857. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  858. <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
  859. <meta name="referrer" content="never">
  860. <meta http-equiv="Expires" content="0">
  861. <meta http-equiv="Pragma" content="no-cache">
  862. <meta http-equiv="Cache-control" content="no-cache">
  863. <meta http-equiv="Cache" content="no-cache">
  864. <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  865. <title>支付订单</title>
  866. <link href="/static/css/main.css?version=1" rel="stylesheet" media="screen">
  867. <style type="text/css">
  868. </style>
  869. </head>
  870. <body class="clipboard">
  871. <div class="body">
  872. <h1 class="mod-title">
  873. <span id="logoSpan" class="ico_log ico-3"></span>
  874. </h1>
  875. <div class="mod-ct">
  876. <div id="errMsg" style="margin-top:15px;display: none;background-color: #ff0000;color:white;font-size: 18px;font-weight: bold;margin-bottom: 2px;padding: 5px;margin-top: -83px;z-index: 9999;position: relative;"></div>
  877. <div class="order">
  878. </div>
  879. <div class="amount" id="money">¥0.00</div>
  880. <div class="qrcode-img-wrapper" data-role="qrPayImgWrapper">
  881. <div id="qrcode" style="display: none;"></div>
  882. <div data-role="qrPayImg" class="qrcode-img-area">
  883. <div class="ui-loading qrcode-loading" data-role="qrPayImgLoading"></div>
  884. <div style="position: relative;">
  885. <div class="time-item" id="msg" style="color:red;font-size: 18px;font-weight: bold;">
  886. <span>匹配中,请耐心等待</span><br />
  887. </div>
  888. <div id='div_qr_demo_img' style="display: none;"><img id="div_qr_demo_imgnode" style="width: 100%;" src="" data-src="/static/images/weixin_other_scan.jpg"></img></div>
  889. <div id="divTimer" class="time-item" style="color:red;font-size:22px">
  890. <strong id="hour_show">0时</strong>
  891. <strong id="minute_show">0分</strong>
  892. <strong id="second_show">0秒</strong>
  893. </div><br />
  894. <div style="font-size: 14px;font-weight: bold;color: #4c9f9f;">
  895. <span id='orderId'></span><br />
  896. 请在规定时间内支付,超时不予赔付
  897. </div>
  898. </div>
  899. </div>
  900. </div>
  901. <div id="ali_show" style="display: none;">
  902. </div>
  903. <div id="wx_show" style="display: none;">
  904. </div>
  905. </div>
  906. </div>
  907. <div id="wexin_guide_div" style="display: none;">
  908. <div class="mod-ct">
  909. <div style="color: rgb(0 0 0 / 80%);">
  910. <h1 style="font-size: 20px; padding: 10px;">支付教程</h1>
  911. <div id="msg2" style="color:red;font-size: 18px;font-weight: bold;">
  912. </div>
  913. <div class="pay-text" style="text-align: left; font-size: 20px;">
  914. <p>
  915. 1、点击下面黄色按钮复制链接;
  916. </p>
  917. <p>
  918. 2、在微信搜索框输入“文件传输助手”点击进入
  919. </p>
  920. <p>
  921. 3、粘贴复制的链接,然后发送,再点击链接支付
  922. </p>
  923. </div>
  924. <div class="content">
  925. <div style="margin: 25px 0;"><button id="wxgiudebtn" class="clipboard" data-clipboard-action="copy" style="border-radius: 10px;display: inline-block;width: 80%;margin: 0 20px 0px;height: 40px;color: #405cc1; line-height:36px;background: #eae510;border: 1px solid #babbba;font-size:20px">去支付</button>
  926. <p style="color:#000000;text-align:center;padding-top:6px;font-size: 16px;">提示:此按钮自动复制链接并唤醒微信</p>
  927. </div>
  928. <div id="tutorials-content" style="display:block;">
  929. <p style="color: #445fc2; font-size: 135%;padding-bottom: 3%; ">图文教程</p>
  930. <img id="weixinguide_img" src="" data-src="/static/images/wxgzhguide.png" style="width:96%;height:100%">
  931. </div>
  932. </div>
  933. </div>
  934. </div>
  935. </div>
  936. <script type="text/javascript" src="/js/qrcode.min.js"></script>
  937. <script type='text/javascript' src='/js/jquery.min.js'></script>
  938. <script type="text/javascript" src="/js/dayjs.min.js"></script>
  939. <script type="text/javascript" src="/js/clipboard.min.js"></script>
  940. <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  941. <script src="https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.10.7/dayjs.min.js"></script>
  942. <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.10/clipboard.min.js"></script> -->
  943. <script type="text/javascript">
  944. // var content2 = "<img width='100%' src='/static/images/xxx.gif' />"; //弹出图片
  945. var urlParams = getUrlParams()
  946. var level = "0";
  947. var clipboardUrl = window.location.origin + '/s/' + urlParams['eo'];
  948. $(function () {
  949. var amount = urlParams['amount'];
  950. var orderId = urlParams['eo'];
  951. $('#money').text('¥' + amount / 100);
  952. $('#orderId').text('订单:' + orderId);
  953. // document.title = orderId;
  954. // $('#clipboardBtn').attr('data-clipboard-text', window.location.href);
  955. // $('#wxgiudebtn').attr('data-clipboard-text', clipboardUrl);
  956. if (urlParams['payType'] == 'alipay') {
  957. $('#logoSpan').removeClass('ico-3');
  958. $('#logoSpan').addClass('ico-1');
  959. $('#wxerrer').remove();
  960. $('#wxerrertwo').remove();
  961. }
  962. });
  963. //读取url参数
  964. function getUrlParams() {
  965. var urlParams;
  966. var match,
  967. pl = /\+/g, // Regex for replacing addition symbol with a space
  968. search = /([^&=]+)=?([^&]*)/g,
  969. decode = function (s) {
  970. return decodeURIComponent(s.replace(pl, " "));
  971. },
  972. query = window.location.search.substring(1);
  973. urlParams = {};
  974. while (match = search.exec(query))
  975. urlParams[decode(match[1])] = decode(match[2]);
  976. return urlParams
  977. }
  978. </script>
  979. <script type="text/javascript">
  980. var myTimer;
  981. var isStopQuery = false;
  982. var createdAt = parseInt(urlParams['cat']);
  983. var expireTime;
  984. var outTime = 120; //匹配订单的过期时间 单位秒
  985. var intDiff = (parseInt(createdAt) + outTime * 1000 - new Date().getTime()) / 1000;
  986. var wxPayUrl = '';
  987. var isChecking = false;
  988. var matchSeconds = 0;
  989. var chargeOrderId;
  990. var phone;
  991. checkdata();
  992. function goTimer() {
  993. myTimer = window.setInterval(function () {
  994. var day = 0,
  995. hour = 0,
  996. minute = 0,
  997. second = 0; //时间默认值
  998. if (intDiff > 0) {
  999. day = Math.floor(intDiff / (60 * 60 * 24));
  1000. hour = Math.floor(intDiff / (60 * 60)) - (day * 24);
  1001. minute = Math.floor(intDiff / 60) - (day * 24 * 60) - (hour * 60);
  1002. second = Math.floor(intDiff) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60);
  1003. }
  1004. if (minute <= 9) minute = '0' + minute;
  1005. if (second <= 9) second = '0' + second;
  1006. $('#hour_show').html('<s id="h"></s>' + hour + '时');
  1007. $('#minute_show').html('<s></s>' + minute + '分');
  1008. $('#second_show').html('<s></s>' + second + '秒');
  1009. if (hour <= 0 && minute <= 0 && second <= 0) {
  1010. isStopQuery = true;
  1011. matchorder_timeout();
  1012. clearInterval(myTimer);
  1013. }
  1014. intDiff = intDiff - 1;
  1015. matchSeconds = matchSeconds + 1;
  1016. if (wxPayUrl == "" && isChecking == false) {
  1017. // if (level != "1") {
  1018. // checkdata();
  1019. // }
  1020. }
  1021. }, 1000);
  1022. }
  1023. //移动表单提交
  1024. function makeCmccFormAndRedirect(payurl) {
  1025. var data = JSON.parse(payurl);
  1026. var formHtml =
  1027. '<div>支付跳转中…</div><form target="_self" id="ebankDepositForm" name="ebankDepositForm" method="POST" action="https://pay.it.10086.cn/payprod-format/h5/dup_submit"><input type="hidden" name="sign" value=\'' + JSON.stringify(data.sign) + '\'/><input type="hidden" name="request_params" value=\'' + JSON.stringify(data.request_params) + '\'/></form>'
  1028. $('body').html(formHtml);
  1029. $('#ebankDepositForm').submit();
  1030. }
  1031. //检测是否有匹配的订单
  1032. function checkdata() {
  1033. isChecking = true;
  1034. var postData = {
  1035. "channelType": "phonecharge", //通道类型
  1036. 'channelCheckSign': 'phonecharge',
  1037. 'payType': urlParams['payType'],
  1038. 'chargeOrderId': chargeOrderId,
  1039. };
  1040. postData.encryptOrder = urlParams['eo'];
  1041. $.ajax({
  1042. type: "POST",
  1043. url: window.location.origin + '/orders/unifiedorder?from=frontend&channelType=phonecharge',
  1044. data: JSON.stringify(postData),
  1045. contentType: "application/json; charset=utf-8",
  1046. dataType: 'json',
  1047. success: function (data, textStatus, jqXHR) {
  1048. isChecking = false;
  1049. var orderInfo = data;
  1050. if (orderInfo) {
  1051. expireTime = orderInfo.payingExpireTime;
  1052. phone=orderInfo.phone;
  1053. if (orderInfo.payType) {
  1054. wxPayUrl = orderInfo.wxPayUrl;
  1055. $('#msg').html("<h1>订单支付过期时间:" + dayjs(orderInfo.payingExpireTime).subtract(40, 's').format('YYYY-MM-DD HH:mm:ss') + "</h1><h1>匹配订单成功</h1>");
  1056. $('#divTimer').hide();
  1057. window.clearInterval(myTimer);
  1058. $("#wx_show").css("display", "");
  1059. if (wxPayUrl.indexOf('request_params') > -1) {
  1060. //引导
  1061. //直接提交
  1062. makeCmccFormAndRedirect(wxPayUrl);
  1063. } else if (wxPayUrl.indexOf('wxpay/bizpayurl') > -1) {
  1064. weixinQR(wxPayUrl, null, false);
  1065. } else if (wxPayUrl.indexOf('wappay.189.cn/pay/weiXinQueryCode.do') > -1 || wxPayUrl.indexOf('WX002') > -1) {
  1066. if (!isWeixinBrowser()) {
  1067. //对扫
  1068. weixinQR(wxPayUrl);
  1069. //gzh引导
  1070. // clipboardUrl=wxPayUrl;
  1071. // $('#wxgiudebtn').attr('data-clipboard-text', clipboardUrl);
  1072. // weixinGuide(wxPayUrl);
  1073. } else {
  1074. window.location.href = wxPayUrl;
  1075. }
  1076. } else if (wxPayUrl.indexOf('unitradeadapter.alipay.com') > -1) {
  1077. if (isMobile() || window.location.href.indexOf('inaliapp') > -1) {
  1078. window.location.href = 'alipays://platformapi/startapp?appId=20000067&url=' + encodeURIComponent(wxPayUrl);
  1079. } else {
  1080. var directUrl = window.location.href + '&inaliapp=1';
  1081. weixinQR(directUrl, null, false, true);
  1082. }
  1083. } else if (wxPayUrl.indexOf('<form name="myForm" action="https://mapi') > -1) {
  1084. if (window.location.href.indexOf('inaliapp') > -1 || isAlipayBrowser()) {
  1085. $("body").html(wxPayUrl);
  1086. setTimeout(function () {
  1087. $("form[name='myForm']").submit();
  1088. }, 500);
  1089. } else {
  1090. var alipayJumpPayUrl = 'alipays://platformapi/startapp?appId=20000067&url=' + encodeURIComponent(window.location.href + '&inaliapp=1');
  1091. window.location.href = alipayJumpPayUrl;
  1092. $("#wx_show").html('<a class="btn submit_alipay" href="' + alipayJumpPayUrl + '"><font size="5">启动支付宝APP支付</font></a><div style="font-size:18px;color:red;">如果无法自动跳转,请使用截图扫码方式支付</div>');
  1093. weixinQR(window.location.href + '&inaliapp=1', null, false, true);
  1094. }
  1095. }else if(wxPayUrl.indexOf('chong.qq.com') > -1){
  1096. clipboardUrl=phone;
  1097. $('#money').after('<h2>手机号:'+phone+'</h2>');
  1098. //弹出wx话费引导界面
  1099. wxHFGuide(function(){
  1100. weixinQR(wxPayUrl , null, false, false,true);
  1101. })
  1102. } else {
  1103. if (orderInfo.payType == 'wechat') {
  1104. $("#wx_show").html('<a class="btn submit_weixinpay" href="' + data.wxPayUrl + '"><font size="5">启动微信APP支付</font></a>');
  1105. window.location.href = data.wxPayUrl;
  1106. } else {
  1107. $("#wx_show").html('<a class="btn submit_alipay" href="' + data.wxPayUrl + '"><font size="5">启动支付宝APP支付</font></a><div style="font-size:18px;color:red;">如果无法自动跳转,请使用截图扫码方式支付</div>');
  1108. window.location.href = data.wxPayUrl;
  1109. weixinQR(window.location.href + '&inaliapp=1', null, false, true);
  1110. }
  1111. }
  1112. }
  1113. }
  1114. },
  1115. complete: function () {
  1116. if (!wxPayUrl && !isStopQuery) {
  1117. setTimeout(function () {
  1118. checkdata();
  1119. }, 1500)
  1120. }
  1121. },
  1122. error: function (jqXHR) {
  1123. isChecking = false;
  1124. if (jqXHR.responseText) {
  1125. if (jqXHR.responseText.indexOf('assign') > -1) {
  1126. } else if (jqXHR.responseText.indexOf('订单已经存在') > -1) {
  1127. window.clearInterval(myTimer);
  1128. isStopQuery = true;
  1129. $('#msg').html("<h1>订单已经存在,请等待返回,或者重新发起</h1>");
  1130. alert('订单已经存在,请等待返回,或者重新发起')
  1131. } else if (jqXHR.responseText.indexOf('订单失败') > -1 || jqXHR.responseText.indexOf('超时') > -1) {
  1132. alert('错误:' + JSON.parse(jqXHR.responseText).message)
  1133. window.clearInterval(myTimer);
  1134. isStopQuery = true;
  1135. $('#msg').html("<h1>生成订单失败.如需继续支付,请返回商户重新下单</h1>");
  1136. } else if (jqXHR.responseText.indexOf('请关闭代理重新下单支付') > -1) {
  1137. alert('请关闭代理软件后,重新下单')
  1138. window.clearInterval(myTimer);
  1139. isStopQuery = true;
  1140. }
  1141. }
  1142. }
  1143. });
  1144. }
  1145. function matchorder_timeout() {
  1146. var amount = parseInt(urlParams['amount'])
  1147. if (amount == 10000 || amount == 20000) {
  1148. var msg = "亲,您选择的金额因为心情不好离家出走了,不妨找两个50元的小妹暂时排忧解难哦,么么哒!";
  1149. $('#errMsg').html("<span>" + msg + "</span>");
  1150. $('#errMsg').css("display", "");
  1151. setTimeout(function () {
  1152. alert(msg);
  1153. }, 0);
  1154. } else {
  1155. $('#msg').html("<h1>匹配订单失败.如需继续支付,请返回商户重新下单</h1>");
  1156. };
  1157. }
  1158. $().ready(function () {
  1159. //默认6分钟过期
  1160. goTimer();
  1161. });
  1162. function weixinGuide(wxPayUrl) {
  1163. $(".body").hide();
  1164. $("#wexin_guide_div").show();
  1165. $("#weixinguide_img").attr('src', $("#weixinguide_img").attr('data-src'));
  1166. var expireSeconds = 120; //parseInt((expireTime - new Date().getTime()) / 1000) - 40;
  1167. setInterval(function () {
  1168. expireSeconds = expireSeconds - 1;
  1169. if (expireSeconds < 0) {
  1170. $('#msg2').html('支付截止时间:' + dayjs(expireTime).subtract(40, 's').format('YYYY-MM-DD HH:mm:ss') + '<br/>订单已经过期 请勿支付<br/>');
  1171. } else {
  1172. $('#msg2').html('<span style="font-size:24px;">支付截止时间:' + dayjs(expireTime).subtract(40, 's').format('YYYY-MM-DD HH:mm:ss') + "<br/>倒计时:" + expireSeconds + '秒</span><br/>');
  1173. }
  1174. }, 1000);
  1175. }
  1176. $("#wxgiudebtn").click(function () {
  1177. alert("链接已复制,去微信粘贴");
  1178. copyClipBoard();
  1179. });
  1180. function copyClipBoard(){
  1181. var clipboard = new ClipboardJS('.clipboard', { text: function () { return clipboardUrl; } });
  1182. clipboard.on('success', function (e) {
  1183. e.clearSelection();
  1184. location.href = 'weixin://';
  1185. })
  1186. clipboard.on('error', function (e) {})
  1187. }
  1188. function weixinQR(wxPayUrl, directUrl, isPay, jietu,cuwx) {
  1189. if (!directUrl) {
  1190. directUrl = "/wxqr.html";
  1191. }
  1192. var href = window.location.origin + directUrl + window.location.search;
  1193. href = wxPayUrl ? wxPayUrl : href;
  1194. var qrcode_elem = document.getElementById('qrcode');
  1195. $('#qrcode').css('display', '');
  1196. var qrcode = new QRCode('qrcode', {
  1197. text: href,
  1198. width: 256,
  1199. height: 256,
  1200. colorDark: "#000000",
  1201. colorLight: "#ffffff",
  1202. correctLevel: QRCode.CorrectLevel.M
  1203. });
  1204. var expireSeconds = parseInt((expireTime - new Date().getTime()) / 1000) - 40;
  1205. var showExpireTime =true; //是否显示过期时间 no2不显示,过期时间90,默认120
  1206. expireSeconds = expireSeconds > 120 ? 120 : expireSeconds;
  1207. setInterval(function () {
  1208. expireSeconds = expireSeconds - 1;
  1209. if (expireSeconds < 0) {
  1210. $('#msg').html('支付截止时间:' + dayjs(expireTime).subtract(40, 's').format('YYYY-MM-DD HH:mm:ss') + '<br/>订单已经过期 请勿支付<br/>如需支付,请返回商户重新下单');
  1211. $('#qrcode').hide();
  1212. } else {
  1213. if (isPay) {
  1214. $('#msg').html('<span style="font-size:24px;">支付截止时间:' + dayjs(expireTime).subtract(40, 's').format('YYYY-MM-DD HH:mm:ss') + " 倒计时:" + expireSeconds + '秒</span><br/>“长按”识别图中二维码');
  1215. } else {
  1216. //截图支付
  1217. var expireTimeHTML = showExpireTime ? '<span style="font-size:24px;">支付截止时间:<br/>' + dayjs(expireTime).subtract(40, 's').format('YYYY-MM-DD HH:mm:ss') + "</span><br/>" : "";
  1218. var daojishiHTML = "倒计时:" + expireSeconds + '秒<br/>';
  1219. if(cuwx){
  1220. $('#msg').html(expireTimeHTML + daojishiHTML + '<div><button onclick="copyClipBoard()" class="clipboard" data-clipboard-action="copy" style="border-radius: 10px;display: inline-block;width: 100%;margin: 0 0;height: 40px;color: #405cc1; line-height:36px;background: #eae510;border: 1px solid #babbba;font-size:20px">复制号码+打开微信</button></div><div><p>1.截图或长按保存上方充值入口二维码</p> <p>2.点击「复制号码+打开微信」按钮</p> <p>3.打开扫一扫此二维码进入充值页面</p> <p>4.长按手机号码输入框并粘贴充值号码</p> <p>5.选择「与订单金额相同」充值金额支付</p><p style="color:red;"></金额错误、超时支付均无法到账,不退不补!></div>');
  1221. return;
  1222. }
  1223. if (jietu) {
  1224. var showPayType = urlParams['payType'] == 'alipay' ? "支付宝" : "微信";
  1225. $('#msg').html(expireTimeHTML + daojishiHTML + '截取屏幕并进入' + showPayType + '<br/>1.手机用户可保存上方二维码或截图<br/>2.打开右上角扫一扫选择“相册”<br/>3.超时支付不到账,不退款<br/>4.付款链接不可重复使用<br/>付款中遇到警示弹窗,请点击继续支付');
  1226. } else {
  1227. //对扫支付
  1228. $('#msg').html(daojishiHTML);
  1229. if (!$('#div_qr_demo_imgnode').attr('src')) {
  1230. $('#div_qr_demo_imgnode').attr('src', $('#div_qr_demo_imgnode').attr('data-src'));
  1231. }
  1232. $('#div_qr_demo_img').show();
  1233. }
  1234. }
  1235. }
  1236. }, 1000);
  1237. }
  1238. function wxHFGuide(func){
  1239. $('body').append('<div class="zhezhao zhezhao1" style=""><div class="yindao"><span style="font-size: 28px;margin-top: 5%">支付教程</span><img id="step1" src="/static/images/wxhfguide1.jpg" alt="" class="step" style="margin-top: 20px;display: block"><img id="step2" src="/static/images/wxhfguide2.jpg" alt="" class="step" style="margin-top: 20px;display: none"><img id="step3" src="/static/images/wxhfguide3.jpg" alt="" class="step" style="margin-top: 20px;display: none"><img id="step4" src="/static/images/wxhfguide4.jpg" alt="" class="step" style="margin-top: 20px;display: none"><button type="button" class="btn zhezhao1_btn1">下一步</button><button type="button" class="btn zhezhao1_btn2" style="display: none">下一步</button><button type="button" class="btn zhezhao1_btn3" style="display: none">确定</button></div></div>');
  1240. $('.zhezhao1_btn1').click(function () {
  1241. $("#step1").hide()
  1242. $("#step2").show()
  1243. $(".zhezhao1_btn1").hide()
  1244. $(".zhezhao1_btn2").show()
  1245. })
  1246. $('.zhezhao1_btn2').click(function () {
  1247. $("#step2").hide()
  1248. $("#step3").show()
  1249. $(".zhezhao1_btn2").hide()
  1250. $(".zhezhao1_btn3").show()
  1251. })
  1252. $('.zhezhao1_btn3').click(function () {
  1253. $('.zhezhao1').hide();
  1254. func();
  1255. })
  1256. }
  1257. function isWeixinBrowser() {
  1258. var ua = navigator.userAgent.toLowerCase();
  1259. return (/micromessenger/.test(ua)) ? true : false;
  1260. }
  1261. function isAlipayBrowser() {
  1262. var ua = navigator.userAgent.toLowerCase();
  1263. return (/alipayclient/.test(ua)) ? true : false;
  1264. }
  1265. function isMobile() {
  1266. var isMobile = /Mobi|iP(hone|od|ad)|Android|BlackBerry/i.test(navigator.userAgent);
  1267. return isMobile;
  1268. }
  1269. </script>
  1270. </body>
  1271. </html>
  1272. ) {"pay_memberid":"10068","pay_orderid":"CJ202204191812014991","pay_applydate":"2022-04-19 18:12:01","pay_bankcode":"1","pay_notifyurl":"http://dk-server.test.wg8.site/notify/1/434/Mingsen","pay_callbackurl":"http://dk-server.test.wg8.site","pay_amount":"30.00","pay_md5sign":"194701F571DC4B5A66F5CED1C69FDD39","pay_productname\t":"CJ","pay_post":"json"} []
  1273. [2022-04-19 18:34:58] pay.INFO: 支付通道(App\Repositories\Service\Payment\MingsenPayment), 错误信息:(请求异常 (解析) data=http://203.107.60.156:1337/phonecharge.html?amount=3000&eo=MzU5MTA4Mzc8PjI1&cat=1650364498443&payType=wechat) {"pay_memberid":"10068","pay_orderid":"CJ202204191834575786","pay_applydate":"2022-04-19 18:34:57","pay_bankcode":"1","pay_notifyurl":"http://dk-server.test.wg8.site/notify/1/435/Mingsen","pay_callbackurl":"http://dk-server.test.wg8.site","pay_amount":"30.00","pay_md5sign":"40FD61099977AD299FE8113E19CE4F89","pay_productname\t":"CJ","pay_post":"json"} []
  1274. [2022-04-19 18:36:59] pay.INFO: 支付通道(App\Repositories\Service\Payment\MingsenPayment), 错误信息:(请求异常,请求失败 data={"status":"error","msg":"不存在的商户编号!","data":[]}) {"pay_memberid":"10068","pay_orderid":"CJ202204191836585458","pay_applydate":"2022-04-19 18:36:58","pay_bankcode":"1","pay_notifyurl":"http://dk-server.test.wg8.site/notify/1/437/Mingsen","pay_callbackurl":"http://dk-server.test.wg8.site","pay_amount":"30.00","pay_md5sign":"DEA34A49720080489F9A10CEFB61295B","pay_productname\t":"CJ","pay_post":"json"} []