在项目开发中,基本上离不开短信使用。如:验证码,语音验证码,订单通知,物流通知,会员通知,交易通知,变更通知等等。笔者也使用过很多平台,个人感觉摩杜云还是不错的。该平台除了支持全球280多个地区发送外,还支持区块链,交易所,金融等行业发送。此处就不在赘述了。
1.当然是到摩杜云注册个账号。
2.登录后台右上角点击accesskey进去创建accesskey、secretkey。
3.准备json_jdk1.7.jar(当然可以下载最新版的,情况根据自己需要。)
4.SmsSDKDemo.java
package com.moduyun.sdk.sms;
import com.moduyun.sdk.sms.yun.SmsSingleSender;
import com.moduyun.sdk.sms.yun.SmsSingleSenderResult;
public class SmsSDKDemo {
public static void main(String[] args) {
try {
//请根据实际 accesskey 和 secretkey 进行开发,以下只作为演示 sdk 使用
String accesskey = "xxx";
String secretkey ="xxxxx";
//手机号码
String phoneNumber = "136252412xx";
//初始化单发
SmsSingleSender singleSender = new SmsSingleSender(accesskey, secretkey);
SmsSingleSenderResult singleSenderResult;
String msg = "【摩杜云】尊敬的用户:您的验证码:123456,工作人员不会索取,请勿泄漏。";
//普通单发,注意前面必须为【】符号包含,置于头或者尾部。
singleSenderResult = singleSender.send(0, "86", phoneNumber, msg, "", "");
System.out.println(singleSenderResult);
} catch (Exception e) {
e.printStackTrace();
}
}
}
5.SmsSenderUtil.java
package com.moduyun.sdk.sms.yun;
import java.net.HttpURLConnection;
import java.net.URL;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Random;
import org.json.JSONArray;
import org.json.JSONObject;
class SmsSenderUtil {
protected Random random = new Random();
public String stringMD5(String input) throws NoSuchAlgorithmException {
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
byte[] inputByteArray = input.getBytes();
messageDigest.update(inputByteArray);
byte[] resultByteArray = messageDigest.digest();
return byteArrayToHex(resultByteArray);
}
protected String strToHash(String str) throws NoSuchAlgorithmException {
MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
byte[] inputByteArray = str.getBytes();
messageDigest.update(inputByteArray);
byte[] resultByteArray = messageDigest.digest();
return byteArrayToHex(resultByteArray);
}
public String byteArrayToHex(byte[] byteArray) {
char[] hexDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
char[] resultCharArray = new char[byteArray.length * 2];
int index = 0;
for (byte b : byteArray) {
resultCharArray[index++] = hexDigits[b >>> 4 & 0xf];
resultCharArray[index++] = hexDigits[b & 0xf];
}
return new String(resultCharArray);
}
public int getRandom() {
return random.nextInt(999999)%900000+100000;
}
public HttpURLConnection getPostHttpConn(String url) throws Exception {
URL object = new URL(url);
HttpURLConnection conn;
conn = (HttpURLConnection) object.openConnection();
conn.setDoOutput(true);
conn.se