掌握聚合最新动态了解行业最新趋势
API接口,开发服务,免费咨询服务

短信API接口怎么对接教程(附PHP源码)

本文将介绍如何使用PHP编程语言对接短信API接口,实现短信发送功能。我们将使用HTTP请求发送包含短信内容和接收手机号码的请求参数,并解析返回的JSON数据以获取发送结果。通过本文的指导,您将能够轻松地对接短信API接口,实现短信发送功能。

短信API接口怎么对接教程

步骤1:选择合适的短信API接口

选择合适的短信API接口需要注意以下几个因素

● 接口可用性及稳定性:支持三大运营商、专享独有通道、到达率、支持大容量高并发

● 接口文档和技术支持:选择一个提供清晰、详细的接口文档,并提供技术支持的接口

● 成本效益:考虑短信发送的费用,并评估接口提供商的价格是否合理

步骤2:注册并获取请求Key

以聚合数据的短信API服务接口为例,首先注册一个账号,并完成【企业实名认证】,由于合规要求,当前所有可信赖的短信API接口都要求进行企业实名认证,因此个人用户无法直接使用这些接口。

注册并获取API密钥

注册账号

655c4b9bdbb90.png!thumb

企业实名认证

注册、实名认证完成后,去个人中心的【数据中心】-【我的API】免费申请短信API服务的测试次数。

655c4ed654a26.png!thumb

免费申请测试次数

申请成功后,你就可以获得短信API服务接口的请求Key了。

655c4f2983174.png!thumb

获取请求Key

同时,我们还需要对我们要提供发送的短信模板提交审核。

655c50bb4c6f1.png!thumb

655c51219c6ee.png!thumb

655c51543a587.png!thumb

短信模板审核通过后,在短信模板列表有个模板ID,可以在测试工具中测试下接口是否符合你的需求。

线上可视化测试工具入口:https://www.juhe.cn/box/index/id/54

655c58878e02f.png!thumb

步骤3:集成API

步骤2准备工作完成后,可以正式进入开发阶段,根据参考接口文档或示例代码,在项目中集成短信API接口。在页面上,我们提供了详细的接口文档内容,包含了接口地址、请求Header、请求参数说明、请求代码示例、返回参数说明、JSON返回示例代码等等。如果在这过程中,有疑问可直接联系我们,寻求技术协助。

655c52fdaff99.png!thumb

接下来以PHP为例的请求代码如下:

$url = "http://v.juhe.cn/sms/send";
$params = array(
    'key'   => '您申请的ApiKey', //您申请的APPKEY
    'mobile'    => '1891351****', //接受短信的用户手机号码
    'tpl_id'    => '111', //您申请的短信模板ID,根据实际情况修改
    'vars' =>'{"code":"3535","name":"聚合数据"}' //模板变量键值对的json类型字符串,根据实际情况修改
);

$paramstring = http_build_query($params);
$content = juheCurl($url, $paramstring);
$result = json_decode($content, true);
if ($result) {
    var_dump($result);
} else {
    //请求异常
}

/**
 * 请求接口返回内容
 * @param  string $url [请求的URL地址]
 * @param  string $params [请求的参数]
 * @param  int $ipost [是否采用POST形式]
 * @return  string
 */
function juheCurl($url, $params = false, $ispost = 0)
{
    $httpInfo = array();
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'JuheData');
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    if ($ispost) {
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
        curl_setopt($ch, CURLOPT_URL, $url);
    } else {
        if ($params) {
            curl_setopt($ch, CURLOPT_URL, $url.'?'.$params);
        } else {
            curl_setopt($ch, CURLOPT_URL, $url);
        }
    }
    $response = curl_exec($ch);
    if ($response === FALSE) {
        //echo "cURL Error: " . curl_error($ch);
        return false;
    }
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $httpInfo = array_merge($httpInfo, curl_getinfo($ch));
    curl_close($ch);
    return $response;
}


步骤4:API调试

根据JSON返回代码来判断是否接入成功,如有报错,可参考错误码列表(在接口文档中),追踪错误原因。

/****失败示例**/
{
    "reason": "错误的短信模板ID,请通过后台确认!!!",
    "result": [],
    "error_code": 205402
}

/****成功示例**/
{
    "reason": "短信发送成功",    
    "result": {
        "count": 1, /*发送数量*/
        "fee": 1, /*扣除条数*/
        "sid": "23d6bc4913614919a823271d820662af" /*短信ID*/
    },
    "error_code": 0 /*发送成功*/
}

步骤5:测试完部署代码并上线


防短信轰炸措施建议 

● 有效的图片验证(图形、滑动拼图验证码、减少被轰炸机识别的可能性)及不低于60S倒计时。

● 限制每天单个IP请求次数。一般业务建议10条以内。支付型业务可根据每天最多进出款次数自行调整。

● 限制单个号码一分钟内和一小时内的获取次数。一般业务建议一分钟内不超过1条,一小时内不超过3条。

● 帐号绑定IP地址。(可绑定多个IP地址)。

● 开设余额提醒功能。

● 请检查是否有能被http调用的漏洞,或者已经弃用但仍可以触发短信的页面。请根据上述提供异常下发号码来查找异常来源并解决。

● APP端建议采用秘钥签名校验请求合法性。

● 由于短信轰炸机可以模拟IP且取用随机号码,所以在进行整改时不要只限制IP和单号码发送次数,因为这样无法限制大量号码异常下发。

声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com

  • 短信API服务

    支持三大运营商,虚拟运营商短信发送,电信级运维保障,独享专用通道,3秒可达,99.99%到达率,支持大容量高并发——超低资费

    支持三大运营商,虚拟运营商短信发送,电信级运维保障,独享专用通道,3秒可达,99.99%到达率,支持大容量高并发——超低资费

  • 营运车判定查询

    输入车牌号码或车架号,判定是否属于营运车辆。

    输入车牌号码或车架号,判定是否属于营运车辆。

  • 名下车辆数量查询

    根据身份证号码/统一社会信用代码查询名下车辆数量。

    根据身份证号码/统一社会信用代码查询名下车辆数量。

  • 车辆理赔情况查询

    根据身份证号码/社会统一信用代码/车架号/车牌号,查询车辆是否有理赔情况。

    根据身份证号码/社会统一信用代码/车架号/车牌号,查询车辆是否有理赔情况。

  • 车辆过户次数查询

    根据身份证号码/社会统一信用代码/车牌号/车架号,查询车辆的过户次数信息。

    根据身份证号码/社会统一信用代码/车牌号/车架号,查询车辆的过户次数信息。

0512-88869195
数 据 驱 动 未 来
Data Drives The Future