Commit 60f5898c9af1467f0192de57fee3323b2827a7de
1 parent
44f357ce
增加 pay.html 前端,对接微信 JS SDK
Showing
8 changed files
with
100 additions
and
9 deletions
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/modules/member/package-info.java
| 1 | /** | 1 | /** |
| 2 | - * member 包下,我们放会员业务. | ||
| 3 | - * 例如说:会员中心等等 | 2 | + * weixin 包下,我们放微信相关业务. |
| 3 | + * 例如说:微信公众号、等等 | ||
| 4 | + * ps:微信支付,还是放在 pay 包下 | ||
| 4 | * | 5 | * |
| 5 | - * 缩写:mbr | 6 | + * 缩写:wx |
| 6 | */ | 7 | */ |
| 7 | -package cn.iocoder.yudao.userserver.modules.member; | ||
| 8 | \ No newline at end of file | 8 | \ No newline at end of file |
| 9 | +package cn.iocoder.yudao.userserver.modules.member; |
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/modules/pay/controller/order/PayOrderController.java
| @@ -12,10 +12,7 @@ import io.swagger.annotations.Api; | @@ -12,10 +12,7 @@ import io.swagger.annotations.Api; | ||
| 12 | import io.swagger.annotations.ApiOperation; | 12 | import io.swagger.annotations.ApiOperation; |
| 13 | import lombok.extern.slf4j.Slf4j; | 13 | import lombok.extern.slf4j.Slf4j; |
| 14 | import org.springframework.validation.annotation.Validated; | 14 | import org.springframework.validation.annotation.Validated; |
| 15 | -import org.springframework.web.bind.annotation.PostMapping; | ||
| 16 | -import org.springframework.web.bind.annotation.RequestBody; | ||
| 17 | -import org.springframework.web.bind.annotation.RequestMapping; | ||
| 18 | -import org.springframework.web.bind.annotation.RestController; | 15 | +import org.springframework.web.bind.annotation.*; |
| 19 | 16 | ||
| 20 | import javax.annotation.Resource; | 17 | import javax.annotation.Resource; |
| 21 | 18 |
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/modules/pay/controller/package-info.java deleted
| 1 | -package cn.iocoder.yudao.userserver.modules.pay.controller; |
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/modules/weixin/controller/mp/WxMpController.http
0 → 100644
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/modules/weixin/controller/mp/WxMpController.java
0 → 100644
| 1 | +package cn.iocoder.yudao.userserver.modules.weixin.controller.mp; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 4 | +import io.swagger.annotations.Api; | ||
| 5 | +import io.swagger.annotations.ApiOperation; | ||
| 6 | +import lombok.extern.slf4j.Slf4j; | ||
| 7 | +import me.chanjar.weixin.common.bean.WxJsapiSignature; | ||
| 8 | +import me.chanjar.weixin.common.error.WxErrorException; | ||
| 9 | +import me.chanjar.weixin.mp.api.WxMpService; | ||
| 10 | +import org.springframework.validation.annotation.Validated; | ||
| 11 | +import org.springframework.web.bind.annotation.PostMapping; | ||
| 12 | +import org.springframework.web.bind.annotation.RequestMapping; | ||
| 13 | +import org.springframework.web.bind.annotation.RequestParam; | ||
| 14 | +import org.springframework.web.bind.annotation.RestController; | ||
| 15 | + | ||
| 16 | +import javax.annotation.Resource; | ||
| 17 | + | ||
| 18 | +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 19 | + | ||
| 20 | +@Api(tags = "微信公众号") | ||
| 21 | +@RestController | ||
| 22 | +@RequestMapping("/wx/mp") | ||
| 23 | +@Validated | ||
| 24 | +@Slf4j | ||
| 25 | +public class WxMpController { | ||
| 26 | + | ||
| 27 | + @Resource | ||
| 28 | + private WxMpService mpService; | ||
| 29 | + | ||
| 30 | + @PostMapping("/create-jsapi-signature") | ||
| 31 | + @ApiOperation(value = "创建微信 JS SDK 初始化所需的签名", | ||
| 32 | + notes = "参考 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html 文档") | ||
| 33 | + public CommonResult<WxJsapiSignature> createJsapiSignature(@RequestParam("url") String url) throws WxErrorException { | ||
| 34 | + return success(mpService.createJsapiSignature(url)); | ||
| 35 | + } | ||
| 36 | + | ||
| 37 | +} |
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/modules/weixin/package-info.java
0 → 100644
yudao-user-server/src/main/resources/application.yaml
| @@ -20,6 +20,10 @@ spring: | @@ -20,6 +20,10 @@ spring: | ||
| 20 | write-durations-as-timestamps: true # 设置 Duration 的格式,使用时间戳 | 20 | write-durations-as-timestamps: true # 设置 Duration 的格式,使用时间戳 |
| 21 | fail-on-empty-beans: false # 允许序列化无属性的 Bean | 21 | fail-on-empty-beans: false # 允许序列化无属性的 Bean |
| 22 | 22 | ||
| 23 | + # 静态资源 | ||
| 24 | + mvc: | ||
| 25 | + static-path-pattern: /static/** | ||
| 26 | + | ||
| 23 | # MyBatis Plus 的配置项 | 27 | # MyBatis Plus 的配置项 |
| 24 | mybatis-plus: | 28 | mybatis-plus: |
| 25 | configuration: | 29 | configuration: |
| @@ -33,6 +37,8 @@ mybatis-plus: | @@ -33,6 +37,8 @@ mybatis-plus: | ||
| 33 | mapper-locations: classpath*:mapper/*.xml | 37 | mapper-locations: classpath*:mapper/*.xml |
| 34 | type-aliases-package: ${yudao.info.base-package}.modules.*.dal.dataobject, ${yudao.core-service.base-package}.modules.*.dal.dataobject | 38 | type-aliases-package: ${yudao.info.base-package}.modules.*.dal.dataobject, ${yudao.core-service.base-package}.modules.*.dal.dataobject |
| 35 | 39 | ||
| 40 | + | ||
| 41 | + | ||
| 36 | --- #################### 芋道相关配置 #################### | 42 | --- #################### 芋道相关配置 #################### |
| 37 | 43 | ||
| 38 | yudao: | 44 | yudao: |
yudao-user-server/src/main/resources/static/pay.html
| 1 | +<!DOCTYPE html> | ||
| 2 | +<html> | ||
| 3 | +<head> | ||
| 4 | + <meta charset="UTF-8"> | ||
| 5 | + <title>支付测试页</title> | ||
| 6 | + <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script> | ||
| 7 | + <script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> | ||
| 8 | +</head> | ||
| 9 | +<body> | ||
| 10 | +<div>点击如下按钮,发起支付的测试</div> | ||
| 11 | +<div> | ||
| 12 | + <button id="wx_pub">微信公众号</button> | ||
| 13 | +</div> | ||
| 14 | +</body> | ||
| 15 | +<script> | ||
| 16 | + $(function() { | ||
| 17 | + // 获得 JsapiTicket | ||
| 18 | + $.ajax({ | ||
| 19 | + url: "http://127.0.0.1:28080/api/wx/mp/create-jsapi-signature?url=" + document.location.href, | ||
| 20 | + method: 'POST', | ||
| 21 | + success: function( result ) { | ||
| 22 | + if (result.code !== 0) { | ||
| 23 | + alert('获取 JsapiTicket 失败,原因:' + result.msg) | ||
| 24 | + return; | ||
| 25 | + } | ||
| 26 | + var jsapiTicket = result.data; | ||
| 27 | + jsapiTicket.jsApiList = []; | ||
| 28 | + jsapiTicket.debug = true; | ||
| 29 | + | ||
| 30 | + // 初始化 JS | ||
| 31 | + wx.config(jsapiTicket); | ||
| 32 | + } | ||
| 33 | + }); | ||
| 34 | + }) | ||
| 35 | + | ||
| 36 | + $( "#wx_pub").on( "click", function() { | ||
| 37 | + wx.ready(function(){ | ||
| 38 | + alert('ok'); | ||
| 39 | + }); | ||
| 40 | + }); | ||
| 41 | +</script> | ||
| 42 | +</html> |