接口签名准备

接入前步骤

第一步:注册账户

进入摩字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);
}

results matching ""

    No results matching ""