怎么微信WeixinJSBridge.invoke支付乐成居然不跳转?还把我页面给关了!这

代码 代码 1528 人阅读 | 0 人回复

<
1、成绩发生布景

公司本来是自力商户号出有那末多请求,故采纳的是wx.chooseWXPay调起付出的,此付出不断已有任何成绩。但克日由于部门营业的需供,需求用第三圆付出,第三圆付出的文档里请求利用WeixinJSBridge.invoke去调起付出!并且付出自前次启拆后,便再也出有来顾它~
2、成绩实践情况战缘故原由

实践成绩

当付出完成后,到了该界里,不管是返回,仍是面完成,他皆间接封闭了页里,不管正在付出胜利回调里做啥,皆无效(不管是alert,仍是页里跳转等)。付出失利战打消付出的回调皆一般。
150506r9n5ucciuz2y99cw.jpg

正在肯定了代码无成绩后,便开启了漫天的搜刮之旅。
150507wxc0y79bo6yq88v7.jpg

n年过去了,头收收利剑的小飞机终究找到了缘故原由~~~~
缘故原由:

材料上看是微疑正在过去的一段工夫里,晋级了商户号,需求开启商户号的面金方案。并且建造对应的商家小票。
3、面金方案开通流程

1.起首需求到微疑商户仄台开通面金方案:

150507poxen0f0o4ip10fy.jpg

2.开通后勾上商户列表中的面金方案,通常为默许勾上的,能够没有操纵。

  面金方案 => 特约商户办理
150507kd5mv5uvbzbdkcc0.jpg

3.设置商家小票

150509vnseeq8zprnnqrnf.jpg

  商家小票链接要战第三步的考证文件正在nginx指背统一目录。
那末商家小票怎样去的?那个是需求开辟的,那么道吧,他便是您付出胜利后跳转的地点,替换了您付出胜利的回调,付出胜利了便间接跳转到那个页里!
150509wl64pm6t5ekp84ef.jpg

右侧那两张图便是您的商家小票,您能够自界说,简朴展现付出疑息,再减两个按钮,一个跳定单详情,一个跳尾页,啥的,随意跳那边皆能够。
那末那个商家小票有啥需求留意的吗?
  开辟文档:https://wx.gtimg.com/pay/download/goldplan/goldplan_product_description_v2.pdf
总结下开辟文档:
  

  • 页里能够自界说
  • 页里下度有限制
  • 必需引进https://wx.gtimg.com/pay_h5/goldplan/js/jgoldplan-1.0.0.js
  • 要用他给的jsapi操纵跳转
  • url会主动照顾 “特约商户号(sub_mch_id)”、“商户定单号(out_trade_no)”、“md5 校验码 (check_code)”三个字段的疑息,按照那三个字段获得定单疑息
我们成立个index.html。 
4.开辟代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="utf-8">
  5.     <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6.     <meta name="referrer" content="origin">
  7.     <meta name="viewport"
  8.         content="width=device-width, viewport-fit=cover, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
  9.     <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
  10.     <title>付出完成</title>
  11.     <script type="text/javascript" charset="UTF-8" src="https://wx.gtimg.com/pay_h5/goldplan/js/jgoldplan-1.0.0.js">
  12.     </script>
  13.     <script type="text/javascript" src="https://cdn.bootcss.com/vConsole/3.3.0/vconsole.min.js"></script>
  14.     <script type="text/javascript" src="https://libs.百度.com/jquery/2.0.0/jquery.min.js"></script>
  15.     <style>
  16.         body {
  17.             font-family: PingFang SC, "Helvetica Neue", Arial, sans-serif;
  18.         }
  19.         .order_box {
  20.             text-align: center;
  21.         }
  22.         .order_box .bussiness_avt img {
  23.             width: 68px;
  24.             height: 68px;
  25.             border-radius: 100%;
  26.             border: 1px solid #E0E0E0;
  27.         }
  28.         .b_name {
  29.             font-size: 14px;
  30.             font-weight: 500;
  31.             color: #333333;
  32.             margin-top: 6px;
  33.         }
  34.         .col_box {
  35.             margin-top: 35px;
  36.         }
  37.         .col_box .col {
  38.             display: -webkit-box;
  39.             display: -ms-flexbox;
  40.             display: -webkit-flex;
  41.             display: flex;
  42.             -webkit-box-align: center;
  43.             -ms-flex-align: center;
  44.             -webkit-align-items: center;
  45.             align-items: center;
  46.             -webkit-box-pack: justify;
  47.             -ms-flex-pack: justify;
  48.             -webkit-justify-content: space-between;
  49.             justify-content: space-between;
  50.             font-size: 14px;
  51.             color: #333;
  52.             margin-bottom: 14px;
  53.         }
  54.         .col .ct.price {
  55.             color: #E61515
  56.         }
  57.         .btns {
  58.             display: -webkit-box;
  59.             display: -ms-flexbox;
  60.             display: -webkit-flex;
  61.             display: flex;
  62.             -webkit-box-pack: justify;
  63.             -ms-flex-pack: justify;
  64.             -webkit-justify-content: space-between;
  65.             justify-content: space-between;
  66.             margin-top: 31px;
  67.         }
  68.         .btns .btn {
  69.             width: 147px;
  70.             height: 35px;
  71.             line-height: 35px;
  72.             font-size: 14px;
  73.             border-radius: 39px;
  74.             border: 1px solid #CD2314;
  75.             box-sizing: border-box;
  76.             color: #CD2314;
  77.         }
  78.         .btns .btn.detail {
  79.             background: linear-gradient(270deg, #D51010 0%, #EF4D2D 100%);
  80.             color: #fff;
  81.         }
  82.     </style>
  83. </head>
  84. <body>
  85.     <div class="order_box">
  86.         <div class="bussiness_avt">
  87.             <img id="b_avt" src="http://fimage.huaxiyou.cc/open/undefined_1557720683836.1200x1200" alt="">
  88.         </div>
  89.         <div class="b_name" id="b_name">
  90.             隆基游览
  91.         </div>
  92.         <div class="col_box">
  93.             <div class="col">
  94.                 <div class="lab">产物称号</div>
  95.                 <div id="p_name" class="ct">古早我吃了个奥特曼</div>
  96.             </div>
  97.             <div class="col">
  98.                 <div class="lab">购置数目</div>
  99.                 <div id="count" class="ct">3</div>
  100.             </div>
  101.             <div class="col">
  102.                 <div class="lab">真付金额</div>
  103.                 <div id="price" class="ct price">100¥</div>
  104.             </div>
  105.         </div>
  106.         <div class="btns">
  107.             <div id="backHome" class="btn home">返回顾页</div>
  108.             <div id="toOrder" class="btn detail">检察详情</div>
  109.         </div>
  110.     </div>
  111.     <script>
  112.         //初初化console调试(正式上线请来失落)
  113.         var vConsole = new VConsole();
  114.         //获得返回页里参数
  115.         function getQueryString(name) {
  116.             var query = window.location.search.substring(1);
  117.             var vars = query.split("&");
  118.             for (var i = 0; i < vars.length; i++) {
  119.                 var pair = vars[i].split("=");
  120.                 if (pair[0] == name) {
  121.                     return pair[1];
  122.                 }
  123.             }
  124.             return null;
  125.         };
  126.         //获得参数
  127.         var sub_mch_id = getQueryString("sub_mch_id"); //特约商户号
  128.         console.log("sub_mch_id is " + sub_mch_id)
  129.         var out_trade_no = getQueryString("out_trade_no"); //商户定单号
  130.         document.getElementById(&#39;888&#39;).value = out_trade_no
  131.         var check_code = getQueryString("check_code"); //md5 校验码
  132.         console.log("check_code is " + check_code)
  133.         //初初化小票
  134.         let initData = {
  135.             action: &#39;onIframeReady&#39;,
  136.             displayStyle: &#39;SHOW_CUSTOM_PAGE&#39;
  137.         }
  138.         parent.postMessage(JSON.stringify(initData), &#39;https://payapp.weixin.qq.com&#39;)
  139.         //注册面击变乱(来详情)
  140.         document.getElementById("toOrder").onclick = () => {
  141.             let mchData = {
  142.                 action: &#39;jumpOut&#39;,
  143.                 jumpOutUrl: &#39;http://m.huaxiyou.cc/app/account/point/detail?iid=3036&#39; //跳转的页里
  144.             }
  145.             parent.postMessage(JSON.stringify(mchData), &#39;https://payapp.weixin.qq.com&#39;)
  146.         }
  147.         //注册面击变乱(来尾页)
  148.         document.getElementById("backHome").onclick = () => {
  149.             let mchData = {
  150.                 action: &#39;jumpOut&#39;,
  151.                 jumpOutUrl: &#39;http://m.huaxiyou.cc/app/index/3036&#39; //跳转的页里
  152.             }
  153.             parent.postMessage(JSON.stringify(mchData), &#39;https://payapp.weixin.qq.com&#39;)
  154.         }
  155.         // 上面是您按照从url上获得到的数据收收恳求给背景拿到定单的疑息,按照需供交换
  156.         // $.ajax({
  157.         //     type: "GET",
  158.         //     url: "/api/TradeCommon/GetTradeInfoAfterWxPay",
  159.         //     data: {
  160.         //         sub_mch_id: sub_mch_id,
  161.         //         out_trade_no: out_trade_no
  162.         //     },
  163.         //     dataType: "json",
  164.         //     success: function (data) {
  165.         //         console.log(data)
  166.         //         if (data.status == "success") {
  167.         //             //按照定单疑息添补页里而且拼接跳转链接
  168.         //             var info = data.data;
  169.         //             var homeLink = "https://xxx.com";
  170.         //             var detailLink = "https://xxx/tradeInfo?trade_id=xxx";
  171.         //             $("#b_avt").src = info.merchantIcon
  172.         //             $("#b_name").html(info.company)
  173.         //             $("#p_name").html(info.goodsName + "-" + info.skuName)
  174.         //             $("#count").html(info.num)
  175.         //             $("#price").html(info.payment)
  176.         //             //初初化小票
  177.         //             let initData = {
  178.         //                 action: &#39;onIframeReady&#39;,
  179.         //                 displayStyle: &#39;SHOW_CUSTOM_PAGE&#39;
  180.         //             }
  181.         //             parent.postMessage(JSON.stringify(initData), &#39;https://payapp.weixin.qq.com&#39;)
  182.         //             //注册面击变乱(来详情)
  183.         //             document.getElementById("toOrder").onclick = function () {
  184.         //                 let mchData = {
  185.         //                     action: &#39;jumpOut&#39;,
  186.         //                     jumpOutUrl: detailLink //跳转的页里
  187.         //                 }
  188.         //                 parent.postMessage(JSON.stringify(mchData), &#39;https://payapp.weixin.qq.com&#39;)
  189.         //             }
  190.         //             //注册面击变乱(来尾页)
  191.         //             document.getElementById("backHome").onclick = function () {
  192.         //                 let mchData = {
  193.         //                     action: &#39;jumpOut&#39;,
  194.         //                     jumpOutUrl: homeLink //跳转的页里
  195.         //                 }
  196.         //                 parent.postMessage(JSON.stringify(mchData), &#39;https://payapp.weixin.qq.com&#39;)
  197.         //             }
  198.         //         }
  199.         //     }
  200.         // });
  201.     </script>
  202. </body>
  203. </html>
复造代码
  Tip:以上代码可间接利用。将index.html上传到效劳器,正在设置下nginx就行了,没有会可交给运维大要后端去上传设置。

150510e90exd6buohhku7d.gif


免责声明:假如进犯了您的权益,请联络站少,我们会实时删除侵权内乱容,感谢协作!
150510fhnnzn5r7ozo35i5.jpg
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,按照目前互联网开放的原则,我们将在不通知作者的情况下,转载文章;如果原文明确注明“禁止转载”,我们一定不会转载。如果我们转载的文章不符合作者的版权声明或者作者不想让我们转载您的文章的话,请您发送邮箱:Cdnjson@163.com提供相关证明,我们将积极配合您!
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并自负版权等法律责任。
回复 关闭延时

使用道具 举报

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则