asd123a20 před 3 roky
rodič
revize
fffa416717
2 změnil soubory, kde provedl 6 přidání a 60 odebrání
  1. 4 4
      app/service/weixin.js
  2. 2 56
      app/view/pay.njk

+ 4 - 4
app/service/weixin.js

@@ -31,7 +31,6 @@ class WeixinAuthService extends AxiosService {
   }
   // 下发模板消息
   async pushMould({ openid, out_trade_no }) {
-    console.log();
     await this.userMould({ openid, out_trade_no });
     await this.adminMould({ out_trade_no });
   }
@@ -196,11 +195,10 @@ class WeixinAuthService extends AxiosService {
     // 签名
     const data = `${appid}\n${payTimestamp}\n${payNonceStr}\nprepay_id=${prepay_id}\n`;
     const createSign = payment.rsaSign(data, privateKey);
-    const pay_uri = this.ctx.header.referer;
     const host = this.ctx.header.referer.split('/')[2];
-    const redirect_uri = `${this.ctx.protocol}://${host}/yl-web/reserve`;
+    const redirect_uri = `${this.ctx.protocol}://${host}/yl-web/payFulfil`;
     // TODO: 重定向到支付页面
-    await this.ctx.render('pay.njk', { openid, appid, prepay_id, payNonceStr, payTimestamp, createSign, redirect_uri, out_trade_no, pay_uri });
+    await this.ctx.render('pay.njk', { openid, appid, prepay_id, payNonceStr, payTimestamp, createSign, redirect_uri, out_trade_no });
   }
   // 关闭订单
   async orderClose({ out_trade_no }) {
@@ -218,6 +216,8 @@ class WeixinAuthService extends AxiosService {
     if (res.status === 204) {
       // 订单关闭成功  删除原订单
       await model.findOne({ out_trade_no }).remove();
+    } else {
+      throw new BusinessError(ErrorCode.SERVICE_FAULT, '订单关闭失败');
     }
     return res;
   }

+ 2 - 56
app/view/pay.njk

@@ -14,22 +14,13 @@
 <body>
   <div class="weui-msg">
     <div class="weui-msg__icon-area">
-			<i class="weui-icon-success weui-icon_msg" id="success"></i>
 			<i class="weui-icon-waiting weui-icon_msg" id="waiting"></i>
 		</div>
 		<div class="weui-msg__text-area">
-			<h2 class="weui-msg__title" id="success2">
-				微信支付成功
-			</h2>
 			<h2 class="weui-msg__title" id="waiting2">
 				微信支付中......
 			</h2>
 		</div>
-    <div class="weui-msg__opr-area">
-			<p class="weui-btn-area">
-				<a href="javascript:;" class="weui-btn weui-btn_default" id="btn">完成</a>
-			</p>
-		</div>
   </div>
   <script>
     var openid = '{{openid}}';
@@ -40,27 +31,6 @@
     var createSign = '{{createSign}}';
     var redirect_uri = '{{redirect_uri}}';
     var out_trade_no = '{{out_trade_no}}';
-    var pay_uri = '{{pay_uri}}'
-    {# 显示成功 #}
-    function showsuccess() {
-      $("#success").show()
-      $("#success2").show()
-      $("#waiting").hide()
-      $("#waiting2").hide()
-      $("#btn").show()
-    }
-    {# 显示加载中 #}
-    function showwaiting() {
-      $("#waiting").show()
-      $("#waiting2").show()
-      $("#success2").hide()
-      $("#success").hide()
-      $("#btn").hide()
-    }
-    {# 点击关闭 #}
-    $("#btn").click(function () {
-      wx.closeWindow();
-    })
     {# 支付接口 #}
     function onBridgeReady() {
       WeixinJSBridge.invoke('getBrandWCPayRequest', {
@@ -73,30 +43,9 @@
       },
       function(res) {
           if (res.err_msg == "get_brand_wcpay_request:ok") {
-            showsuccess();
-            $.ajax({
-              type: 'POST',
-              url: '/api/weixin/pushMould',
-              data: { out_trade_no, openid }
-            })
-            $.ajax({
-              type: 'POST',
-              url: '/api/order/updatestatus',
-              data: { out_trade_no }
-            })
+            window.location.replace(`${redirect_uri}/${out_trade_no}?result=success`);
           } else {
-            $.ajax({
-              type: 'POST',
-              url: '/api/weixin/orderClose',
-              data: { out_trade_no }
-            })
-            .then(function(res) {
-              if (res.status == 204) {
-                window.location.replace(redirect_uri);
-              }
-            }).fail(function( jqXHR, textStatus, errorThrown ) {
-              window.location.replace(pay_uri);
-            });
+            window.location.replace(`${redirect_uri}/${out_trade_no}?result=fail`);
           }
       });
     }
@@ -110,9 +59,6 @@
     } else {
       onBridgeReady();
     }
-    $(function () {
-      showwaiting()
-    })
   </script>
 </body>