个性化(变量)短信通知服务的接口接入方法(附带demo)

版权声明:此文章属于中昱维信短信平台撰写,如需转载,请联系www.veesing.com中的客服 https://blog.csdn.net/veesing/article/details/83654520

个性化短信通知也叫变量短信通知,其含义是可以动态改变短信模板中的一个或者两个参数,可实现自动下发通知的功能,广泛用于电商的订单发货、派送以及签收通知服务,这种服务一般是接入第三方的短信平台。

常见的短信模板模式:

【商家名称】您好,您的快递$(变量)已经从$(变量)发出,预计$(变量)天后到达。

这种变量短信很多电商公司都在使用,对于用户来说也是一个很好的提醒服务,也可以从侧面烘托商家的服务质量。

废话不多说,介绍这种变量短信的接入方法

第一步:先去第三方注册一个账号

选择有免费测试条数的短信服务商。

第二步:获取开发者需要的appid,appkey

第三步:申请模板

第五步:拿到了这些之后,就可以去下载接入文档了

这是接口一个简单的DEMO,接入者可以根据自己的业务需求进行调整

package com.veesing.test;

import java.io.IOException;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.veesing.utils.Config;

/**
 * 个性化短信
 * @author MWH
 *
 */
public class CustomTest {
	public static void main(String[] args) {
		// 获取连接
		HttpClient client = new HttpClient();
		// 语音验证码API接口地址
		PostMethod method = new PostMethod("https://vip.veesing.com/smsApi/custom");
		// 设置编码
		client.getParams().setContentCharset("UTF-8");
		method.setRequestHeader("ContentType", "application/x-www-form-urlencoded;charset=utf-8");
		// 在平台创建的个性化短信模板 ID
		String smsId = "37";
		// 【中昱维信】尊敬的${变量}您好,欢迎您注册为本公司会员,有任何疑问请联系客服或致电全国服务热线:${变量}。
		// 模板中有两个变量
		JSONArray jsonArray = new JSONArray();
		jsonArray.add("中昱用户");
		jsonArray.add("400-68-10658");
		System.out.println(jsonArray);
		// json对象
		JSONObject json = new JSONObject();
		json.put("variables", jsonArray);
		json.put("mobile", "15080929435");
		// 最终json
		JSONArray  lastArray = new JSONArray();
		lastArray.add(json);
		System.out.println(json.toString());
		// 拼接参数
		NameValuePair[] data = { 
				new NameValuePair("appId", Config.appid), 
				new NameValuePair("appKey", Config.appkey),
				new NameValuePair("smsId", smsId), 
				// 发送时间,时间请务必大于实际提交时间的30分钟, 立即发送则不填,
				// new NameValuePair("sendTime", "2018-08-21 14:00:00") ,
				new NameValuePair("content", lastArray.toString())};
		method.setRequestBody(data);
		try {
			client.executeMethod(method);
			String result = method.getResponseBodyAsString();
			// 返回结果
			System.out.println(result);
			JSONObject jsonObject = JSONObject.parseObject(result);
			// 返回2000则发送成功(逻辑操作请根据接口文档返回参数自行判断)
			if (jsonObject.get("returnStatus").equals("2000")) {
				System.out.println("成功!");
			} else {
				System.out.println("失败!");
			}
			// 释放连接
			method.setRequestHeader("Connection", "close");  
			method.releaseConnection();
		} catch (HttpException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

这是一些借口返回的状态码

接口文档上都有做详细的说明

4000  账号或密码错误

4005 参数错误

4006 模板不存在或者未审核通过

4007  参数与模板不匹配

4004 签名不合法

4001  账户余额不足

4002  确手机号码格式不正确

4003  手机号码今日发送次数已达上限

4010  相同手机号码一分钟之内只可发送一次

2000  发送成功

4008  未知原因,请联系客服 

4012  数组格式错误

4010  账户被锁定

4200  未进行企业认证,只能发送系统默认模板

4080  定时时间必须大于当前时间 30 分钟以上

4081  定时时间不正确 例:2017-4-5 15:34:00

猜你喜欢

转载自blog.csdn.net/veesing/article/details/83654520
今日推荐