<?php
require_once __DIR__ . '/../vendor/autoload.php';
use YunxinServerSdk\Core\BizName;
use YunxinServerSdk\Core\YunxinApiHttpClient;
use YunxinServerSdk\Core\EndpointConfig;
use YunxinServerSdk\Core\YunxinHttpClientConfig;
use YunxinServerSdk\Core\Metrics\MetricsConfig;
use YunxinServerSdk\Core\Exception\YunxinSdkException;
use YunxinServerSdk\Sms\YunxinSmsApiServices;
use YunxinServerSdk\Sms\Request\SmsSendCodeRequest;
// 初始化
$appkey = "xx";
$appsecret = "xx";
$timeoutMillis = 5000;
// 配置客户端
$endpointConfig = new EndpointConfig();
$httpClientConfig = new YunxinHttpClientConfig();
$httpClientConfig->setConnectTimeoutMillis($timeoutMillis);
$httpClientConfig->setReadTimeoutMillis($timeoutMillis);
$metricsConfig = new MetricsConfig();
$client = new YunxinApiHttpClient(
BizName::sms(),
$appkey,
$appsecret,
$endpointConfig,
$httpClientConfig,
$metricsConfig
);
$services = new YunxinSmsApiServices($client);
$smsApiService = $services->getSmsApiService();
try {
// 发送验证码短信
$request = new SmsSendCodeRequest();
$request->setMobile("13012340000");
$result = $smsApiService->sendCode($request);
if ($result->getCode() !== 200) {
echo "Error code: " . $result->getCode() . "\n";
echo "Error message: " . $result->getMsg() . "\n";
} else {
$response = $result->getResponse();
echo "SMS sent successfully: " . json_encode($response) . "\n";
}
} catch (YunxinSdkException $e) {
echo "SMS error: " . $e->getMessage() . "\n";
echo "TraceId: " . $e->getTraceId() . "\n";
}
$request = new SmsSendCodeRequest();
$request->setMobile("13012340000");
$request->setTemplateId("your_template_id"); // 可选,指定模板ID
$result = $smsApiService->sendCode($request);
use YunxinServerSdk\Sms\Request\SmsSendTextRequest;
$request = new SmsSendTextRequest();
$request->setMobile("13012340000");
$request->setContent("您的验证码是:123456");
$result = $smsApiService->sendText($request);
use YunxinServerSdk\Sms\Request\SmsBatchSendRequest;
$request = new SmsBatchSendRequest();
$request->setMobiles(["13012340000", "13012340001"]);
$request->setContent("批量短信内容");
$result = $smsApiService->batchSend($request);
use YunxinServerSdk\Sms\Request\SmsQueryStatusRequest;
$request = new SmsQueryStatusRequest();
$request->setSendId("your_send_id"); // 发送时返回的sendId
$result = $smsApiService->queryStatus($request);
try {
$result = $smsApiService->sendCode($request);
if ($result->isSuccess()) {
$response = $result->getResponse();
// 处理成功响应
} else {
// 处理业务错误
switch ($result->getCode()) {
case 414:
echo "参数错误\n";
break;
case 315:
echo "IP限制\n";
break;
case 403:
echo "非法操作或没有权限\n";
break;
default:
echo "其他错误: " . $result->getMsg() . "\n";
}
}
} catch (YunxinSdkException $e) {
// 处理SDK异常(网络异常、超时等)
echo "SDK异常: " . $e->getMessage() . "\n";
}
- 手机号格式: 支持国内11位手机号
- 发送频率: 注意短信发送频率限制
- 模板管理: 使用模板短信需要先在控制台配置模板
- 余额监控: 定期检查短信余额
- 状态查询: 重要短信建议查询发送状态