WechatServiceImpl.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package com.yingying.tourist.service.impl;
  2. import java.io.UnsupportedEncodingException;
  3. import org.springframework.stereotype.Service;
  4. import com.alibaba.fastjson.JSON;
  5. import com.alibaba.fastjson.JSONObject;
  6. import com.yingying.tourist.common.HttpRequestSimple;
  7. import com.yingying.tourist.domain.User;
  8. import com.yingying.tourist.service.WechatService;
  9. @Service
  10. public class WechatServiceImpl implements WechatService {
  11. // private static String appId = "wx00b0504317473c38";
  12. // private static String appSecret = "88d1172e0a53444298efe61c763bf894";
  13. /**
  14. * 微信测试号
  15. */
  16. private static String appId = "wx8a98f5f7df1e89b5";
  17. private static String appSecret = "f622f3300cb3d12d01f8e82ff1cce1ee";
  18. /**
  19. * 获取微信服务端token
  20. * @return
  21. */
  22. @Override
  23. public String getToken() {
  24. String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appId + "&secret="
  25. + appSecret;
  26. String result = HttpRequestSimple.doGet(url);
  27. JSONObject jsonObject = JSONObject.parseObject(result);
  28. String token = jsonObject.getString("access_token");
  29. return token;
  30. }
  31. /**
  32. * JS-SDK使用权限签名算法 获取ticket
  33. *
  34. * @return
  35. */
  36. @Override
  37. public String getTicket() {
  38. String token = getToken();
  39. String url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + token + "&type=jsapi";
  40. String result = HttpRequestSimple.doGet(url);
  41. JSONObject jsonObject = JSONObject.parseObject(result);
  42. String ticket = jsonObject.getString("ticket");
  43. return ticket;
  44. }
  45. /**
  46. * 通过code换取网页授权access_token
  47. *
  48. * @param code
  49. * @return
  50. */
  51. @Override
  52. public String getAuthToken(String code) {
  53. String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + appId + "&secret=" + appSecret + "&code=" + code + "&grant_type=authorization_code";
  54. String result = HttpRequestSimple.doGet(url);
  55. return result;
  56. }
  57. @Override
  58. public User getWechatUser(String token, String openId) throws UnsupportedEncodingException {
  59. String url = "https://api.weixin.qq.com/sns/userinfo?access_token=" + token + "&openid=" + openId + "&lang=zh_CN";
  60. String result = HttpRequestSimple.doGet(url);
  61. String decodeResult = new String(result.getBytes("ISO-8859-1"), "UTF-8");
  62. User user = JSON.parseObject(decodeResult, User.class);
  63. return user;
  64. }
  65. }