首页 - 详情
签名说明

草庐提供以下SDK,你可以自行封装加密参数,也可以使用SDK:

PHP SDK、JAVA SDK


本站采用MD5方式加密。签名生成步骤如下:

1:组装业务参数,按照接口文档的“业务请求参数”进行组合;

2:组装请求参数,按照接口文档的“公共请求参数”进行组合,此时附带额外的appkey参数,且不包含sign参数;

3:请求参数排序,把上述第二步的请求参数按照ASCII码从小到大排序;

4:拼接待签名的数据,使用URL键值对的格式(即key1=value1&key2=value2..)拼接成字符串;

5:数据签名,使用md5加密上述步骤四种的字符串;

6:重新封装请求参数,把数据签名添加熬请求参数中,同时剔除appkey参数


现已发送消息业务为例进行签名示例:

短信网关
阿里云
短信网关的appidLOAINV8pIUzMccgZ
草庐平台的appkeyZZYxVOAAOxJSmCsODqkT3rUS2pdhp9
短信模版IDSMS_174890022
短信签名草庐
接收短信手机号码18888888888
发送参数

2个参数,分别是code和url,其对应值如下:

code=>1234

url=>cao.lu


第一步,组装业务参数

$bizdata = array(

    'gateway'=>'aliyun',

    'appid'=>'LOAINV8pIUzMccgZ',

    'phonenum'=>'18888888888',

    'tcode'=>'SMS_174890022',

    'smssign'=>'草庐',

    'senddata'=>array(

        'code'=>'1234',

        'url'=>'cao.lu'

    )

);


第二步,组装请求参数。不包含sign参数,且附带appkey参数

$postdata = array(

    'method'=>'sendmsg',

    'app_id'=>'888888',

    'appkey'=>'ZZYxVOAAOxJSmCsODqkT3rUS2pdhp9',

    'signtype'=>'md5',

    'version'=>'v1.0',

    'biz_content'=>json_encode($bizdata,JSON_UNESCAPED_UNICODE)

);


第三步,请求参数排序

ksort($postdata);


第四步,拼接待签名的数据

$signstr = '';

foreach($postdata as $key=>$val){

    $signstr .= '&'.$key.'='.$val;

}

$signstr = substr($signstr,1);


此时,待签名的字符串如下:

app_id=888888&appkey=ZZYxVOAAOxJSmCsODqkT3rUS2pdhp9&biz_content={"gateway":"aliyun","appid":"LOAINV8pIUzMccgZ","phonenum":"18888888888","tcode":"SMS_174890022","smssign":"草庐","senddata":{"code":"1234","url":"cao.lu"}}&method=sendmsg&signtype=md5&version=v1.0


第五步,数据签名

$sign = md5($signstr);


第六步,重新封装请求参数。删除appkey参数,以及增加sign参数。

unset($postdata['appkey']);

$postdata['sign']=$sign;


至此,postdata就是最终POST或者GET的数据了。

$postdata = array(

    'method'=>'sendmsg',

    'app_id'=>'888888',

    'sign'=>'de2fb701b38f0c226577438cb47a9cd8',

    'signtype'=>'md5',

    'version'=>'v1.0',

    'biz_content'=>json_encode($bizdata,JSON_UNESCAPED_UNICODE)

);