对接阿里的短信接口笔记
主要引入的依赖:
<dependency>
<groupId>com.aliyun.api.gateway</groupId>
<artifactId>sdk-core-java</artifactId>
<version>1.1.0</version>
</dependency>
代码展示:
import com.alibaba.cloudapi.sdk.client.ApacheHttpClient; import com.alibaba.cloudapi.sdk.enums.HttpMethod; import com.alibaba.cloudapi.sdk.enums.ParamPosition; import com.alibaba.cloudapi.sdk.enums.Scheme; import com.alibaba.cloudapi.sdk.model.ApiCallback; import com.alibaba.cloudapi.sdk.model.ApiRequest; import com.alibaba.cloudapi.sdk.model.ApiResponse; import com.alibaba.cloudapi.sdk.model.HttpClientBuilderParams; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @Slf4j @Service public class SMSUtil extends ApacheHttpClient { private static final String HOST = "smssend.shumaidata.com"; private static final String PATH = "/sms/send"; private static final String APPKEY = "xxxxx"; public static final String APPSECRET = "xxxxx"; public static final String APPCODE = "xxxxx"; static SMSUtil instance = new SMSUtil(); public static SMSUtil getInstance(){return instance;} public SMSUtil(){ HttpClientBuilderParams httpClientBuilderParams = new HttpClientBuilderParams(); httpClientBuilderParams.setAppKey(APPKEY); httpClientBuilderParams.setAppSecret(APPSECRET); httpClientBuilderParams.setScheme(Scheme.HTTPS); httpClientBuilderParams.setHost(HOST); super.init(httpClientBuilderParams); } /** * 异步接口 * @param templateId * @param receive * @param tag * @param callback */ public void sendAnsy(String templateId , String receive , String tag , ApiCallback callback) { ApiRequest request = new ApiRequest(HttpMethod.POST_FORM , PATH); request.addParam("templateId" , templateId , ParamPosition.QUERY , true); request.addParam("receive" , receive , ParamPosition.QUERY , true); request.addParam("tag" , tag , ParamPosition.QUERY , false); log.info("【异步发送短信】请求为{}", request.getFormParams()); sendAsyncRequest(request , callback); } /** * 同步接口 * @param templateId * @param receive * @param tag * @return */ public ApiResponse send(String templateId , String receive , String tag) { ApiRequest request = new ApiRequest(HttpMethod.POST_FORM , PATH); request.addParam("templateId" , templateId , ParamPosition.QUERY , true); request.addParam("receive" , receive , ParamPosition.QUERY , true); request.addParam("tag" , tag , ParamPosition.QUERY , false); log.info("【同步发送短信】请求为{}", request.getFormParams()); return sendSyncRequest(request); } }
说明:
主要参数有三 * @param templateId 模板ID,这个要去对应的控制台去申请 * @param receive 短信接受者的手机号 * @param tag 填充内容,多变量传入格式 aaa|bbb 用 | 符号按顺序隔开

浙公网安备 33010602011771号