WechatHelp.java 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package com.qxgmat.help;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.nuliji.tools.exception.ParameterException;
  4. import com.nuliji.tools.third.OauthData;
  5. import com.nuliji.tools.third.wechat.MessageListener;
  6. import com.nuliji.tools.third.wechat.WechatClient;
  7. import com.qxgmat.data.constants.enums.MessageCategory;
  8. import com.qxgmat.data.constants.enums.MessageType;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.beans.factory.annotation.Value;
  11. import org.springframework.stereotype.Service;
  12. import java.util.HashMap;
  13. import java.util.Map;
  14. @Service
  15. public class WechatHelp {
  16. private WechatClient wechatPc;
  17. @Autowired
  18. private void getWechatPc(@Value("${third.wechat.pc.appId}") String appId,
  19. @Value("${third.wechat.pc.appSecret}") String appSecret) {
  20. this.wechatPc = new WechatClient(appId, appSecret);
  21. }
  22. private WechatClient wechat;
  23. @Autowired
  24. private void getWechat(@Value("${third.wechat.native.appId}") String appId,
  25. @Value("${third.wechat.native.appSecret}") String appSecret) {
  26. this.wechat = new WechatClient(appId, appSecret);
  27. }
  28. @Value("${third.wechat.questionTemplate}")
  29. private String questionTemplate;
  30. @Value("${third.wechat.courseTemplate}")
  31. private String courseTemplate;
  32. public OauthData oauthPc(String code, boolean userInfo) {
  33. return wechatPc.webAuthorize(code,userInfo);
  34. }
  35. public OauthData oauthNative(String code, boolean userInfo){
  36. return wechat.webAuthorize(code, userInfo);
  37. }
  38. public OauthData refreshNative(String refreshToken) {
  39. return wechat.refreshWebAccessToken(refreshToken);
  40. }
  41. public String redirectPc(String redirectUrl, String state){
  42. return wechatPc.getOAuthUrl(redirectUrl, state);
  43. }
  44. public String redirectNative(String redirectUrl, String state){
  45. return wechat.getOAuthUrl(redirectUrl, state);
  46. }
  47. public String jsTicket(){
  48. return wechat.jsTicket();
  49. }
  50. public String receiveMessage(String body){
  51. wechat.ReceiveMessage(body, new MessageListener() {
  52. @Override
  53. public void OnScan(String openId, int sceneId) {
  54. }
  55. @Override
  56. public void OnSubscribe(String openId) {
  57. }
  58. });
  59. return "";
  60. }
  61. public boolean sendMessage(String openid, MessageCategory messageCategory, Map<String, String> dataMap){
  62. String templateId = "";
  63. switch (messageCategory){
  64. case ASK_QUESTION:
  65. templateId = this.questionTemplate;
  66. break;
  67. case ASK_COURSE:
  68. templateId = this.courseTemplate;
  69. break;
  70. default:
  71. throw new ParameterException("微信通知类型错误");
  72. }
  73. wechat.sendMessage(openid, templateId, "", dataMap);
  74. return true;
  75. }
  76. }