当前位置:   article > 正文

微信小程序+java springboot后台_扫码进小程序指定页面java详细代码springboot

扫码进小程序指定页面java详细代码springboot

1、准备工作:(个人用户的小程序服务功能并不多,企业小程序的服务功能开发多)

自己的域名、服务器,国内的话,最好是备案过的。

2、无小程序:自己去公众平台进行注册,地址:小程序

3、注册之后登录,绑定开发人员,一般设置自己就行。

开发设置:域名服务器配置自行配置,建议使用宝塔方便快捷。

4、说到这里,随便说下怎么安装使用宝塔吧(服务器运维工具面板)

官网:宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板

进入官网:点 立即安装 

安装教程 

安装之前,需要去自己服务器后台放行8888端口,这是宝塔访问面板的默认端口。

放行之后,根据自己服务器的操作系统选择命令,登录ssh控制台,执行命令一键安装。

安装成功,成功页面会给出登录路径以及密码,然后登录后台,添加网站:

添加网站:

建站成功的nginx默认页面:

nginx配置:

一键配置https:配置完成后即可进行https的安全访问

另外,随便安装一个tomcat,来部署 java后台的war包:

至此,服务器以及域名已经搭建完成。

5、代码开发

一部分是前端代码,另一部分是后端代码,其实就跟开发 安卓 ios app一样 ,小程序的前端展示代码开发,会js就行,会一些前端代码更好。


前端代码开发:

点击 微信提供的开发工具 下载微信提供的工具

下载完毕后,进行安装,无需配置环境,双击运行即可:

新建项目

建项目后,会默认一套微信提供的框架,按照这个编写即可,也可以使用其他工具编写好后,再来这里提交上传代码(可以使用微信提供的git库管理代码)

前端代码就这个样子,然后是后端的java代码。

后端java代码:

这里使用一个封装的jar,pom地址

  1. <!-- 小程序 公众号使用sdk -->
  2. <dependency>
  3. <groupId>com.github.binarywang</groupId>
  4. <artifactId>weixin-java-miniapp</artifactId>
  5. <version>3.3.0</version>
  6. </dependency>

 然后就是编写自己的java代码(注意配置自己的小程序相关信息):

  1. wx:
  2. app-id: appid
  3. app-secret: app密钥
  4. mch-id: 商户id(用作微信支付相关)
  5. mch-key: 商户密钥
  6. notify-url: 商户证书
  7. # 商户证书文件路径
  8. # 请参考“商户证书”一节 https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=4_3
  9. key-path: xxxxx

后台我使用的springboot,写一个简单controller demo:WxController.java

  1. import java.sql.Timestamp;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. import javax.servlet.http.HttpServletRequest;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.validation.annotation.Validated;
  7. import org.springframework.web.bind.annotation.PostMapping;
  8. import org.springframework.web.bind.annotation.RequestBody;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.RestController;
  11. import com.alibaba.fastjson.JSON;
  12. import cn.binarywang.wx.miniapp.api.WxMaService;
  13. import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
  14. import io.swagger.annotations.ApiOperation;
  15. /**
  16. *
  17. * @类名称 WxController.java
  18. * @类描述 <pre>微信登录鉴权相关</pre>
  19. * @作者 yw
  20. * @创建时间 2020年6月21日 下午6:38:42
  21. * @版本 5.0.0
  22. *
  23. * @修改记录
  24. * <pre>
  25. * 版本 修改人 修改日期 修改内容描述
  26. * ----------------------------------------------
  27. * 5.0.0 yw 2020年6月21日
  28. * ----------------------------------------------
  29. * </pre>
  30. */
  31. @RestController
  32. @RequestMapping("/wx/auth")
  33. public class WxController {
  34. @Autowired
  35. private WxMaService wxService;//上面引入的java里面的服务器
  36. @Autowired
  37. private AdminUserService adminUserService;//自己的用户相关信息服务,需要自己去编码
  38. /**
  39. * 微信登录
  40. *
  41. * @param wxLoginInfo 请求内容,{ code: xxx, userInfo: xxx }
  42. * @param request 请求对象
  43. * @return 登录结果
  44. */
  45. @PostMapping("wxlogin")
  46. @ApiOperation(value="app用户登录", notes="app用户登录")
  47. public ResponseMsg loginByWeixin(@RequestBody WxLoginInfo wxLoginInfo, HttpServletRequest request) {
  48. String code = wxLoginInfo.getCode();//code即是前端调用微信登录获取的
  49. AdminUser userInfo = wxLoginInfo.getUserInfo();
  50. if (code == null || userInfo == null) {
  51. return new ResponseMsg(CommonReturnCode.WX_PARAM_IS_NULL);
  52. }
  53. String sessionKey = null;
  54. String openId = null;
  55. try {
  56. WxMaJscode2SessionResult result = this.wxService.getUserService().getSessionInfo(code);
  57. sessionKey = result.getSessionKey();
  58. openId = result.getOpenid();
  59. } catch (Exception e) {
  60. e.printStackTrace();
  61. }
  62. //拿到openId,再进行自己的业务操作
  63. if (sessionKey == null || openId == null) {
  64. return new ResponseMsg(CommonReturnCode.WX_PARAM_IS_NULL);
  65. }
  66. //比如查询库里面是否存在该用户,有则更新登录次数,无则注册账号,看自己的业务
  67. AdminUser user = adminUserService.getModelByLogin(openId);;
  68. if (user == null) {
  69. user = new AdminUser();
  70. user.setLoginName(openId);
  71. user.setPassword(openId);
  72. user.setHeadUrl(userInfo.getHeadUrl());
  73. user.setName(userInfo.getName());
  74. user.setCreateTime(new Timestamp(System.currentTimeMillis()));
  75. adminUserService.insertModelWithoutNull(user);
  76. } else {
  77. user.setLoginNum(user.getLoginNum() + 1);
  78. adminUserService.updateModelWithoutNull(user);
  79. }
  80. // token 登录成功后,可以使用jwt,返回给前端token 后续需要token进行接口鉴权验证
  81. Map<String, Object> result = new HashMap<>();
  82. String subject = JSON.toJSONString(user);
  83. //openId 作为id,用户对象作为 subject 这两个参数自己随意
  84. String token = TokenUtils.createJwtTokenApp(openId, subject);
  85. result.put("token", token);
  86. result.put("userInfo", user);
  87. //相关信息再返回给前端,token必须
  88. return new ResponseMsg(result);
  89. }
  90. }

到这里微信小程序就已经跟java后台联通上了,然后就是进一步的进行自己的业务开发。

简单分享,祝你顺利,有问题留言,不吝赐教!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/209740
推荐阅读
相关标签
  

闽ICP备14008679号