CodeServiceImpl.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package com.iamberry.wechat.service.sendmsg;
  2. import com.iamberry.app.config.ImberryConfig;
  3. import com.iamberry.app.tool.log.RatFWLogger;
  4. import com.iamberry.wechat.face.sendmsg.CodeService;
  5. import net.sf.json.JSONObject;
  6. import org.apache.http.HttpEntity;
  7. import org.apache.http.NameValuePair;
  8. import org.apache.http.client.entity.UrlEncodedFormEntity;
  9. import org.apache.http.client.methods.CloseableHttpResponse;
  10. import org.apache.http.client.methods.HttpPost;
  11. import org.apache.http.impl.client.CloseableHttpClient;
  12. import org.apache.http.impl.client.HttpClients;
  13. import org.apache.http.message.BasicNameValuePair;
  14. import org.apache.http.util.EntityUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Service;
  17. import java.util.*;
  18. /**
  19. * @company 深圳爱贝源科技有限公司
  20. * @website www.iamberry.com
  21. * @author 献
  22. * @tel 18271840547
  23. * @date 2016年11月1日
  24. * @explain 验证码业务实现类
  25. */
  26. @SuppressWarnings("unused")
  27. @Service
  28. public class CodeServiceImpl implements CodeService {
  29. @Autowired
  30. private RatFWLogger logger;
  31. private static String ENCODING = "UTF-8";
  32. private static Random rnd = new Random();
  33. //向特定手机发送验证码
  34. @Override
  35. public String informShipping(String phone, String text) {
  36. return sendOtherCMS(phone,text);
  37. }
  38. /**
  39. * 向指定手机发送短信 返回发送结果
  40. * @param phone 电话
  41. * @param text 短信内容
  42. * @return
  43. */
  44. private String sendOtherCMS(String phone, String text) {
  45. String results = sendSms(text,phone);
  46. logger.info("向手机:" + phone + ",发送短信:" + text + ",返回结果-->>" + results);
  47. JSONObject json = JSONObject.fromObject(results);
  48. String resultcod = json.get("code").toString();
  49. if("0".equals(resultcod)){
  50. return "SUCCESS";
  51. }else{
  52. return "验证码发送失败,请稍后重试";
  53. }
  54. }
  55. /**
  56. * 配置云片相关信息并发送请求
  57. * @param text 发送的内容
  58. * @param mobile 手机号
  59. * @return
  60. */
  61. public static String sendSms(String text, String mobile) {
  62. Map<String, String> params = new HashMap<String, String>();
  63. params.put("apikey", ImberryConfig.INTER_SMS_KEY);
  64. params.put("text", text);
  65. params.put("mobile", mobile);
  66. return post(ImberryConfig.INTER_SMS_URL, params);
  67. }
  68. /** 基于HttpClient 4.3的通用POST方法
  69. * @param url 提交的URL
  70. * @param paramsMap 提交<参数,值>Map
  71. * @return 提交响应
  72. */
  73. public static String post(String url, Map<String, String> paramsMap) {
  74. CloseableHttpClient client = HttpClients.createDefault();
  75. String responseText = "";
  76. CloseableHttpResponse response = null;
  77. try {
  78. HttpPost method = new HttpPost(url);
  79. if (paramsMap != null) {
  80. List<NameValuePair> paramList = new ArrayList<NameValuePair>();
  81. for (Map.Entry<String, String> param : paramsMap.entrySet()) {
  82. NameValuePair pair = new BasicNameValuePair(param.getKey(), param.getValue());
  83. paramList.add(pair);
  84. }
  85. method.setEntity(new UrlEncodedFormEntity(paramList, ENCODING));
  86. }
  87. response = client.execute(method);
  88. HttpEntity entity = response.getEntity();
  89. if (entity != null) {
  90. responseText = EntityUtils.toString(entity);
  91. }
  92. } catch (Exception e) {
  93. e.printStackTrace();
  94. } finally {
  95. try {
  96. response.close();
  97. } catch (Exception e) {
  98. e.printStackTrace();
  99. }
  100. }
  101. return responseText;
  102. }
  103. }