mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 18:28:43 +08:00 
			
		
		
		
	增加 pay.html 前端,对接微信 JS SDK
This commit is contained in:
		| @@ -18,7 +18,7 @@ public class PayOrderCreateReqDTO implements Serializable { | |||||||
|     /** |     /** | ||||||
|      * 应用编号 |      * 应用编号 | ||||||
|      */ |      */ | ||||||
|     @NotEmpty(message = "应用编号不能为空") |     @NotNull(message = "应用编号不能为空") | ||||||
|     private Long appId; |     private Long appId; | ||||||
|     /** |     /** | ||||||
|      * 用户 IP |      * 用户 IP | ||||||
|   | |||||||
| @@ -18,6 +18,6 @@ public class PayOrderSubmitRespDTO implements Serializable { | |||||||
|     /** |     /** | ||||||
|      * 调用支付渠道的响应结果 |      * 调用支付渠道的响应结果 | ||||||
|      */ |      */ | ||||||
|     private String invokeResponse; |     private Object invokeResponse; | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -134,7 +134,7 @@ public class PayOrderCoreServiceImpl implements PayOrderCoreService { | |||||||
|         // TODO 轮询三方接口,是否已经支付的任务 |         // TODO 轮询三方接口,是否已经支付的任务 | ||||||
|         // 返回成功 |         // 返回成功 | ||||||
|         return new PayOrderSubmitRespDTO().setExtensionId(orderExtension.getId()) |         return new PayOrderSubmitRespDTO().setExtensionId(orderExtension.getId()) | ||||||
|                 .setInvokeResponse(JsonUtils.toJsonString(unifiedOrderResult)); |                 .setInvokeResponse(unifiedOrderResult.getData()); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private String generateOrderExtensionNo() { |     private String generateOrderExtensionNo() { | ||||||
|   | |||||||
| @@ -18,6 +18,6 @@ public class PayOrderSubmitRespVO { | |||||||
|     /** |     /** | ||||||
|      * 调用支付渠道的响应结果 |      * 调用支付渠道的响应结果 | ||||||
|      */ |      */ | ||||||
|     private String invokeResponse; |     private Object invokeResponse; | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -13,10 +13,14 @@ | |||||||
| </div> | </div> | ||||||
| </body> | </body> | ||||||
| <script> | <script> | ||||||
|  |     let shopOrderId = undefined; | ||||||
|  |     let payOrderId = undefined; | ||||||
|  |     let server = 'http://127.0.0.1:28080'; | ||||||
|     $(function() { |     $(function() { | ||||||
|         // 获得 JsapiTicket |         // 获得 JsapiTicket | ||||||
|  |         // 参考 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html 文档 | ||||||
|         $.ajax({ |         $.ajax({ | ||||||
|             url: "http://127.0.0.1:28080/api/wx/mp/create-jsapi-signature?url=" + document.location.href, |             url: server + "/api/wx/mp/create-jsapi-signature?url=" + document.location.href, | ||||||
|             method: 'POST', |             method: 'POST', | ||||||
|             success: function( result ) { |             success: function( result ) { | ||||||
|                 if (result.code !== 0) { |                 if (result.code !== 0) { | ||||||
| @@ -24,19 +28,77 @@ | |||||||
|                     return; |                     return; | ||||||
|                 } |                 } | ||||||
|                 var jsapiTicket = result.data; |                 var jsapiTicket = result.data; | ||||||
|                 jsapiTicket.jsApiList = []; |                 jsapiTicket.jsApiList = ['chooseWXPay']; | ||||||
|                 jsapiTicket.debug = true; |                 jsapiTicket.debug = false; | ||||||
|  |  | ||||||
|                 // 初始化 JS |                 // 初始化 JS | ||||||
|                 wx.config(jsapiTicket); |                 wx.config(jsapiTicket); | ||||||
|             } |             } | ||||||
|         }); |         }); | ||||||
|  |  | ||||||
|  |         // 自动发起商城订单编号 | ||||||
|  |         $.ajax({ | ||||||
|  |             url: server + "/api/shop/order/create", | ||||||
|  |             method: 'POST', | ||||||
|  |             success: function( result ) { | ||||||
|  |                 if (result.code !== 0) { | ||||||
|  |                     alert('创建商城订单失败,原因:' + result.msg) | ||||||
|  |                     return; | ||||||
|  |                 } | ||||||
|  |                 shopOrderId = result.data.id; | ||||||
|  |                 payOrderId = result.data.payOrderId; | ||||||
|  |                 console.log("商城订单:" + shopOrderId) | ||||||
|  |                 console.log("支付订单:" + payOrderId) | ||||||
|  |             } | ||||||
|  |         }) | ||||||
|     }) |     }) | ||||||
|  |  | ||||||
|  |     // 微信公众号 | ||||||
|     $( "#wx_pub").on( "click", function() { |     $( "#wx_pub").on( "click", function() { | ||||||
|         wx.ready(function(){ |         if (typeof WeixinJSBridge == "undefined") { | ||||||
|             alert('ok'); |             if (document.addEventListener) { | ||||||
|  |                 document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false); | ||||||
|  |             } else if (document.attachEvent) { | ||||||
|  |                 document.attachEvent('WeixinJSBridgeReady', onBridgeReady); | ||||||
|  |                 document.attachEvent('onWeixinJSBridgeReady', onBridgeReady); | ||||||
|  |             } | ||||||
|  |         } else { | ||||||
|  |             onBridgeReady() | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         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)); | ||||||
|  |                         } | ||||||
|                     }); |                     }); | ||||||
|  |                 } | ||||||
|  |             }) | ||||||
|  |         } | ||||||
|     }); |     }); | ||||||
| </script> | </script> | ||||||
| </html> | </html> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV