我正在使用AWS SDK将SMS发送到手机号码,以便通过sms发送OTP。
我在这里面临的问题是,根据印度标准时间(上午9点到晚上9点),短信只在白天发送。如果我尝试在晚上9点之后向AWS SNS端点发送SMS请求,那么它将在第二天上午9点之后发送消息。
代码如下所示。
String ACCESS_KEY = env.getProperty("aws.access.key");
String SECRET_KEY = env.getProperty("aws.secret.access.key");
// Above we get the access and secret access key as credentials for the user.
String otp = getRandomNumberString(); // generates an OTP number of 4 digit
AmazonSNSClient snsClient = new AmazonSNSClient(new BasicAWSCredentials(ACCESS_KEY,
SECRET_KEY));
String message = "Your Connect OTP for Login/Signup is: " + otp
+ ".\nNote: Please DO NOT SHARE THIS OTP with anyone.\nThanks";
String phoneNumber = "+91" + String.valueOf(mobile); // Ex: +91XXX4374XX
String messageID = sendSMSMessage(snsClient, message, phoneNumber);
// The definition of method named "sendSMSMessage" as above is written below in next code block//definition of method named "sendSMSMessage"
public static String sendSMSMessage(AmazonSNSClient snsClient, String message, String phoneNumber) {
PublishResult result = snsClient
.publish(new PublishRequest().withMessage(message).withPhoneNumber(phoneNumber));
return result.getMessageId();
}发布于 2020-06-04 09:39:59
您可以发送两种类型的SMS。
-促销信息
-事务消息
促销信息就像广告一样。这些消息将不会被递送到DND号码,并且根据NCPR指南,这些消息只能在上午9点到晚上9点之间递送。
发送交易消息是为了交易目的,如发送OTP和发送支付确认。这些消息可以24/7全天候发送给任何号码。
因此,问题是您需要将SMS类型更改为Transaction SMS
https://stackoverflow.com/questions/59467349
复制相似问题