摩杜云支持国内和国际快速发送验证码、短信通知和推广短信,服务范围覆盖全球200多个国家和地区。国内短信支持三网合一属通道,与工信部携号转网平台实时互联。电信级运维保障,实时监控自动切换,到达率高达99%。完美支撑8亿短信发送。
1.当然是到摩杜云注册个账号。
2.登录后台右上角点击accesskey进去创建accesskey、secretkey。
3.代码实现。
SmsSenderDemo.php
<?php
namespace Moduyun\Sms\Demo;
require_once "SmsSingleSender.php";
use Moduyun\Sms\SmsSingleSender;
try {
// 请根据实际 accesskey 和 secretkey 进行开发,以下只作为演示 sdk 使用
$accesskey = "";
$secretkey = "";
$phoneNumber = "";
$singleSender = new SmsSingleSender($accesskey, $secretkey);
// 普通单发
$result = $singleSender->send(0, "86", $phoneNumber , "【摩杜云】您注册的验证码:128128有效时间30分钟。", "", "");
$rsp = json_decode($result);
echo $result;
echo "<br>";
} catch (\Exception $e) {
echo var_dump($e);
}
SmsSenderUtil.php
<?php
// Works well with php5.3 and php5.6.
namespace Moduyun\Sms;
class SmsSenderUtil {
function getRandom() {
return rand(100000, 999999);
}
function calculateSig($secretkey, $random, $curTime, $phoneNumbers) {
$phoneNumbersString = $phoneNumbers[0];
for ($i = 1; $i < count($phoneNumbers); $i++) {
$phoneNumbersString .= ("," . $phoneNumbers[$i]);
}
return hash("sha256", "secretkey=".$secretkey."&random=".$random
."&time=".$curTime."&mobile=".$phoneNumbersString);
}
function calculateSigForTemplAndPhoneNumbers($secretkey, $random, $curTime, $phoneNumbers) {
$phoneNumbersString = $phoneNumbers[0];
for ($i = 1; $i < count($phoneNumbers); $i++) {
$phoneNumbersString .= ("," . $phoneNumbers[$i]);
}
return hash("sha256", "secretkey=".$secretkey."&random=".$random
."&time=".$curTime."&mobile=".$phoneNumbersString);
}
function phoneNumbersToArray($nationCode, $phoneNumbers) {
$i = 0;
$tel = array();
do {
$telElement = new \stdClass();
$telElement->nationcode = $nationCode;
$telElement->mobile = $phoneNumbers[$i];
array_push($tel, $telElement);
} while (++$i < count($phoneNumbers));
return $tel;
}
function calculateSigForTempl($secretkey, $random, $curTime, $phoneNumber) {
$phoneNumbers = array($phoneNumber);
return $this->calculateSigForTemplAndPhoneNumbers($secretkey, $random, $curTime, $phoneNumbers);
}
function sendCurlPost($url, $dataObj) {
$curl = curl_init();