全部产品
云市场

物联卡短信发送

更新时间:2019-07-24 09:51:23

物联卡短信发送

步骤 1 创建阿里云账号

为了访问服务,您需要有一个阿里云账号。如果没有,可首先按照如下步骤创建阿里云账号:

  1. 访问阿里云 官方网站,单击页面上的 免费注册 按钮。
  2. 按照屏幕提示完成注册流程并进行实名认证,该服务只支持实名认证用户使用。为了更好地使用阿里云服务,建议尽快完成实名认证,否则部分阿里云服务将无法使用。具体实名认证流程,请参考 这里

步骤 2 获取阿里云访问密钥

为了使用物联卡 SDK,您必须申请阿里云的访问密钥。

阿里云访问秘钥是阿里云为用户使用 API(非控制台)来访问其云资源设计的“安全口令”。您可以用它来签名 API 请求内容以通过服务端的安全验证。

该访问秘钥成对(AccessKeyId 与 AccessKeySecret)生成和使用。每个阿里云用户可以创建多对访问秘钥,且可随时启用(Active)、禁用(Inactive)或者删除已经生成的访问秘钥对。

您可以通过阿里云控制台的 秘钥管理页面 创建、管理所有的访问秘钥对,且保证它处于“启用”状态。由于访问秘钥是阿里云对 API 请求进行安全验证的关键因子,请妥善保管你的访问秘钥。如果某些秘钥对出现泄漏风险,建议及时删除该秘钥对并生成新的替代秘钥对。

步骤 3 在控制台完成购卡行为后,且卡被用户正常激活后,获得调用接口必备的参数

该接口为邀约开放接口,符合条件后台开通产品后才能发起物联卡短信。

TemplateCode

邀约开通对应产品后,由后台同步商家对应的模板code。数据短信产品和普通短信产品对应的模板code不同,请勿混用。

参数
请求参数
名称 类型 是否必须 描述
TemplateCode String 必须 短信对应的模板code,数据短信和普通短信依据的模板code不通
PhoneNumbers String 必须 接受短信的物联卡MSISDN
TemplateParam String 必须 渲染短信内容的模板参数,该参数是一个Json字符串,且key只能是content
SignName String 必须 短信签名

其他请求参数请参见 公共请求参数

出参列表
出参名称 出参类型 样例取值 参数说明
RequestId String 8906582E-6722 请求ID
Code String OK 状态码-返回OK代表请求成功,其他错误码详见错误码列表
Message String 请求成功 状态码的描述
Module String 101510614255450461^0 发送短信成功后返回的全局唯一序列

技术对接步骤

1:下载SDK工具包

SDK&DEMO[下载地址]

2: 编写样例程序

注:有备注无需修改的位置请勿改动。

  1. * @return stdClass
  2. * @throws ClientException
  3. */
  4. public static function doSendIotSms() {
  5. $request = new DoSendIotSmsRequest();
  6. //可选-启用https协议
  7. //$request->setProtocol("https");
  8. //必填: 物联卡短信签名
  9. $request->setSignName('yourIotSmsSignName');
  10. //必填: 物联卡短信模板code 注:物联卡数据短信模板code 和 物联卡普通短信code 是分开的
  11. $request->setTemplateCode('yourIotSmsCode');
  12. //必填: 接受短信的物联卡MSISDN
  13. $request->setPhoneNumbers('receiverNumber');
  14. //必填: 设置上下文参数 注:无论物联卡普通短信还是物联卡数字短信上下文参数key均为content
  15. $request->setTemplateParam(json_encode(array('content' => 'abc'), JSON_UNESCAPED_UNICODE));
  16. //hint 此处可能会抛出异常,注意catch
  17. $response = static::getAcsClient()->getAcsResponse($request);
  18. return $response;
  19. }
  20. // 调用示例:
  21. set_time_limit(0);
  22. header("Content-Type: text/plain; charset=utf-8");
  23. $response = IotDemo::doSendIotSms();
  24. echo "物联网卡短信发送(doSendIotSms)接口返回的结果:\n";
  25. print_r($response);

返回示例

JSON示例

  1. {
  2. "RequestId": "F0EB4AA8-3284-41EB-BECE-17D12088EA0A",
  3. "Code": "OK",
  4. "Message": "OK",
  5. "Module": "101510614255450461^0"
  6. }

调取接口失败,这种情况,会在通过接口发送时,返回requestid和errcode。您可以通过这两个信息了解具体错误情况。

错误码

错误代码 描述 Http状态码 语义
isv.INVALID_PARAMETERS The parameters is invalid. 400 参数无效,具体看message表述
isv.PRODUCT_UN_SUBSCRIPT The Product need to order,before invoke the API. 400 未开通物联卡产品
isv.RES_NOT_EXIST Can’t found the card by the MSISDN number. 400 卡资源不存在
isv.SYSTEM_LIMIT_CONTROL System contorl request rate now . 400 触发系统流控
isv.BLACK_KEY_CONTROL_LIMIT The template parameters is contains black words. 400 模板变量中存在黑名单关键字
isv.AMOUNT_NOT_ENOUGH Not enough amount for send SMS . 400 账户余额不足
isv.QUERY_ASSETS_ERROR Query user infomation of the card response is error. 400 卡对应的用户资料异常
isv.GATEWAY_ERROR The gateway error,you can see error information. 400 触发系统流控
isv.CUST_NOT_MATCH The invoker is permission invoke the API for the card. 400 非前卡归属者,无权发起调用
isv.MOBILE_NUMBER_ILLEGAL The MSISDN number is illegal. 400 不支持的号段
isv.RAM_PERMISSION_DENY The invoker is permission invoke the API for the card. 400 当前调用者无权对该卡发起请求
isv.SYSTEM_ERROR System error. 404 系统异常

2.运营商发送失败信息。具体失败情况,您可以通过运营商错误码对照进行了解:

移动:https://help.aliyun.com/document_detail/44411.html

联通:https://help.aliyun.com/document_detail/44782.html

电信:https://help.aliyun.com/document_detail/44784.html