接口签名准备
接入前步骤
第一步:注册账户
进入摩字API官网 www.moziapi.com 注册账号后登陆后台。
第二步:查询商户ID和APIKEY
在后台首页的API接口信息处,您可以查询商户ID和apikey,版本号默认为V1。
第三步:设置服务器IP白名单
为了保证您的账户和信息安全,实名认证完成后需要先在【系统设置】-【IP白名单】处设置服务器IP白名单,只有白名单内的IP才可以调用摩字接口。
第四步:报备短信签名&模板
因运营商要求,发送短信必须提前报备签名和模板,否则无法发送。您可以在【国内短信】-【签名/模板管理】处完成签名、模板的报备,审核通过后才能发送,审核只需要一次。
为快速接入,前期您可以先使用我们为您预先报备的签名模板进行开发测试。
可直接测试的短信模板:【摩字】尊敬的#name#,您好!这是测试短信,很高兴认识您,期待我们合作愉快!
第五步:参考接入说明,选择合适的API接口
API域名为: api.moziapi.com
主要的API接口列表
接口 | 地址 | 备注 |
---|---|---|
内容发送接口 | /sms/send/content | 指定同一内容发送,一次最多发送100个号码 |
模板发送接口 | /sms/send/template | 指定同一模板发送,一次最多发送100个号码 |
余额查询接口 | /sms/account/balanceQuery | 查询账户余额 |
状态报告推送 | 请联系客服配置地址 | 提供实时的用户接收短信状态推送 |
回复短信推送 | 请联系客服配置地址 | 提供实时的用户回复短信推送 |
接入协议
摩字APIAPI使用https,并且遵循REST原则设计的Web服务接口。 通过发送简单的HTTP POST请求就可以轻松接入使用。
接口验签
为了防止恶意请求,请求需添加签名字段。 将请求body部分所有的字符和对应的apikey相加,转化成字节数组(编码指定UTF-8) 再进行SHA1加密字节数组,再用16进制转换成文本形式。
生成签名伪代码如下:
sign = hexDigits(sha1((body+apiKey)转字节数组(utf8)))
生成签名图示:
图中测试body:{"test":"测试body数据"}
图中测试apikey:ANW7R3UNvt8ZbVS9UBm0JduBphnBQUnI
最终签名:72b0fd91ae0fd82ce824b04c10e5ccb5cc012852
签名生成示例代码
Java版本
public class Sign{
/**
* 签名生成示例
* @param bodyData 请求body数据内容
* @param apiKey 对应版本的apikey
* @return 签名
*/
public static String buildSign(String bodyData, String apiKey) {
//获取body+apikey的字节流
byte[] bytes= (bodyData+apiKey).getBytes("UTF-8");
//SHA1加密
byte[] encodeBytes = com.google.common.hash.Hashing.sha1().hashBytes(bytes).asBytes();
//转十六进制字符
String sign = org.apache.commons.codec.binary.Hex.encodeHexString(encodeBytes);
return sign;
}
}
Python版本
#!/usr/bin/python
# coding=utf-8
import hashlib
# data: 请求body数据
def buildSign(data, apiKey):
return hashlib.sha1(data + apiKey).hexdigest()
PHP版本
//data: 请求数据
//apiKey: 请求秘钥
function buildSign($data, $apiKey)
{
return sha1($data . $apiKey);
}