Skip to content

Latest commit

 

History

History
141 lines (114 loc) · 3.71 KB

File metadata and controls

141 lines (114 loc) · 3.71 KB

快速开始(使用面向对象client)

<?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";
}

SMS API 主要功能

1. 发送验证码短信

$request = new SmsSendCodeRequest();
$request->setMobile("13012340000");
$request->setTemplateId("your_template_id"); // 可选,指定模板ID

$result = $smsApiService->sendCode($request);

2. 发送文本短信

use YunxinServerSdk\Sms\Request\SmsSendTextRequest;

$request = new SmsSendTextRequest();
$request->setMobile("13012340000");
$request->setContent("您的验证码是:123456");

$result = $smsApiService->sendText($request);

3. 批量发送短信

use YunxinServerSdk\Sms\Request\SmsBatchSendRequest;

$request = new SmsBatchSendRequest();
$request->setMobiles(["13012340000", "13012340001"]);
$request->setContent("批量短信内容");

$result = $smsApiService->batchSend($request);

4. 查询短信状态

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";
}

注意事项

  1. 手机号格式: 支持国内11位手机号
  2. 发送频率: 注意短信发送频率限制
  3. 模板管理: 使用模板短信需要先在控制台配置模板
  4. 余额监控: 定期检查短信余额
  5. 状态查询: 重要短信建议查询发送状态