AWS SNS SMS для индийских номеров

Я использую AWS SDK 3.0 для отправки SMS через AWS SNS на индийские номера. Я создал экземпляр ec2 на AWS.
Пожалуйста, используйте код ниже:

$params = array(
'credentials' => array(
'key' => 'XXXXXX',
'secret' => 'XXXXXXX',
),
'region' => 'us-west-2', // < your aws from SNS Topic region
'version' => 'latest',
'http' => [ 'verify' => false ]
);
$sns = new \Aws\Sns\SnsClient($params);

$args = array(
'MessageAttribute' => [
'AWS.SNS.SMS.SenderID' => [
'DataType'    => 'String',
'StringValue' => 'Sender',
],
'AWS.SNS.SMS.SMSType'  => [
'DataType'    => 'String',
'StringValue' => 'Transactional',
]
],
"Message" => "Test Message",
"PhoneNumber" => "+91XXXXXX",
'MessageStructure' => 'string',
);

$result = $sns->publish($args);

Этот код отправляет смс. Тем не менее, SMS регистрируются как рекламные SMS, а не транзакционные. Таким образом, доставляется только с 9 утра до 8 вечера.

Буду признателен за любую оказанную помощь.

0

Решение

Ваша логика программирования в порядке. В вашем скрипте есть опечатка. MessageAttributes не MessageAttribute. Из-за этой опечатки он игнорирует атрибуты Message, которые вы передаете и принимаете default message type установить в вашем Text messaging preferences раздел в консоли SNS AWS, который является Promotional,

Правильный код:

$args = array(
'MessageAttributes' => [
'AWS.SNS.SMS.SenderID' => [
'DataType'    => 'String',
'StringValue' => 'Sender',
],
'AWS.SNS.SMS.SMSType'  => [
'DataType'    => 'String',
'StringValue' => 'Transactional',
]
],
"Message" => "Test Message",
"PhoneNumber" => "+91XXXXXX",
'MessageStructure' => 'string',
);
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector