Browse Source

完成微信支付的支付流程,美滋滋

YunaiV 3 years ago
parent
commit
1b0aaec9ab

+ 1 - 1
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/modules/shop/controller/ShopOrderController.java

@@ -43,7 +43,7 @@ public class ShopOrderController {
         reqDTO.setMerchantOrderId(String.valueOf(System.currentTimeMillis()));
         reqDTO.setSubject("标题:" + shopOrderId);
         reqDTO.setBody("内容:" + shopOrderId);
-        reqDTO.setAmount(100);
+        reqDTO.setAmount(1); // 单位:分
         reqDTO.setExpireTime(DateUtils.addTime(Duration.ofDays(1)));
         Long payOrderId = payOrderCoreService.createPayOrder(reqDTO);
 

+ 1 - 0
yudao-user-server/src/main/resources/static/MP_verify_DKOvVzFP7vPwwHx2.txt

@@ -0,0 +1 @@
+DKOvVzFP7vPwwHx2

+ 47 - 41
yudao-user-server/src/main/resources/static/pay.html

@@ -2,6 +2,7 @@
 <html>
 <head>
     <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>
     <title>支付测试页</title>
     <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
     <script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
@@ -15,7 +16,8 @@
 <script>
     let shopOrderId = undefined;
     let payOrderId = undefined;
-    let server = 'http://127.0.0.1:28080';
+    // let server = 'http://127.0.0.1:28080';
+    let server = 'http://niubi.natapp1.cc';
     $(function() {
         // 获得 JsapiTicket
         // 参考 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html 文档
@@ -56,49 +58,53 @@
     // 微信公众号
     $( "#wx_pub").on( "click", function() {
         if (typeof WeixinJSBridge == "undefined") {
-            if (document.addEventListener) {
-                document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
-            } else if (document.attachEvent) {
-                document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
-                document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
-            }
-        } else {
-            onBridgeReady()
+            // if (document.addEventListener) {
+            //     document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
+            // } else if (document.attachEvent) {
+            //     document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
+            //     document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
+            // }
+            alert('微信支付,只支持在微信客户端中使用!');
+            return;
+        }
+        if (navigator.userAgent.indexOf('wechatdevtools') >= 0) {
+            alert('微信支付,无法在微信开发者工具中使用!请使用微信客户端!');
+            return;
         }
 
-        function onBridgeReady() {
-            $.ajax({
-                url: server + "/api/pay/order/submit",
-                method: 'POST',
-                dataType: "json",
-                contentType: "application/json",
-                data: JSON.stringify({
-                    "id": payOrderId,
-                    "channelCode": 'wx_pub',
-                }),
-                success: function( result ) {
-                    if (result.code !== 0) {
-                        alert('提交支付订单失败,原因:' + result.msg)
-                        return;
-                    }
-                    alert('开始调用微信支付');
-                    let data = result.data.invokeResponse;
-                    wx.chooseWXPay({
-                        timestamp: data.timeStamp,
-                        nonceStr: data.nonceStr,
-                        package: data.package,
-                        signType: data.signType,
-                        paySign: data.paySign,
-                        success: function (res) {
-                            alert(JSON.stringify(res));
-                        },
-                        error: function(e) {
-                            alert(JSON.stringify(e));
-                        }
-                    });
+        // 提交支付
+        $.ajax({
+            url: server + "/api/pay/order/submit",
+            method: 'POST',
+            dataType: "json",
+            contentType: "application/json",
+            data: JSON.stringify({
+                "id": payOrderId,
+                "channelCode": 'wx_pub',
+            }),
+            success: function( result ) {
+                if (result.code !== 0) {
+                    alert('提交支付订单失败,原因:' + result.msg)
+                    return;
                 }
-            })
-        }
+                alert('点击确定,开始微信支付');
+                // 开始调用微信支付
+                let data = result.data.invokeResponse;
+                wx.chooseWXPay({
+                    timestamp: data.timeStamp,
+                    nonceStr: data.nonceStr,
+                    package: data.packageValue,
+                    signType: data.signType,
+                    paySign: data.paySign,
+                    success: function (res) {
+                        alert(JSON.stringify(res));
+                    },
+                    error: function(e) {
+                        alert(JSON.stringify(e));
+                    }
+                });
+            }
+        })
     });
 </script>
 </html>