超过1000种
营销玩法
产品中心 解决方案
活动营销中台 游戏化营销 积分运营 小程序运营 APP运营 连锁门店运营 智慧党建 公众号运营 员工福利
用户案例 免费模板
10万
服务价格
  • 模板会员
    10万模板免费用
  • 企业会员
    更多高级功能满足企业需求
企业微信版
  • 登录
  • 立即注册
  • 用户案例
  • 模板商店
  • 营销日历
  • 免费注册
人人秀帮助中心
搜索你的问题
新手入门
产品教程
帮助文档
商城运营
公众号
小程序
常见问题

API接口规范及签名算法

API接口开通

使用人人秀API服务,需要在人人秀平台申请开通该服务,

管理地址:人人秀平台(rrx.cn/open)—>设置—>API对接。联系在线客服申请开通后,系统会自动分配一个AppKey和AppSecret。

image.png


人人秀API接口必须含有下面3个参数

参数名

类型

说明

app_key

string(32)

人人秀平台分配的AppKey

time_stamp

string(14)

1970-01-01开始的时间戳,精确到毫秒

sign

string(32)

根据签名算法计算所得


签名算法

计算步骤:

  • 第1步,设所有发送或者接收到的数据为集合M,将集合M内⾮空参数值的参数按照参数名ASCII码 从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。

  • 第2步,在stringA最后拼接上AppSecret得到stringSignTemp字符串,并对stringSignTemp进⾏MD5运算,再将得到的字符串所有字符转换为⼤写,得到sign值signValue。


特别注意以下重要规则:  

  • 参数名ASCII码从小到⼤排序(字典序);  

  • 如果参数的值为空不参与签名;  

  • 参数名区分小写;  

  • ⼈⼈秀平台主动发起的请求时,传送的sign参数不参与签名,将⽣成的签名与该sign值作校验;

  • ⼈⼈秀平台接⼝可能增加字段,签名验证必须遍历所有参数 ;



实例演示:

假设已经开通人人秀API功能,并且获得以下信息:

AppKey=96c84928b1dce057d110ea3b3880fc83

AppSecret=eRdLi88c6I6L95PFSX1Nq69Y84xLcD3T


假设某接口需要传送如下信息:

openid:   ot1UbuBBzlE6IjEDWfyXQW3dy2S4

transaction_no:  69201704060281699381

time_stamp:  1543999047492

nonce_str:  ibuaiVcKdpRxkhJA

order_no:  19201704060281699381


按照API接口规范,实际需要传递信息为:

app_key:  96c84928b1dce057d110ea3b3880fc83

time_stamp:  1543999047492

sign: 待计算

openid:   ot1UbuBBzlE6IjEDWfyXQW3dy2S4

transaction_no:  69201704060281699381

nonce_str:  ibuaiVcKdpRxkhJA

order_no:  19201704060281699381


按照签名算法计算sign:

  • 第1步:对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:stringA="app_key=96c84928b1dce057d110ea3b3880fc83&nonce_str= ibuaiVcKdpRxkhJA&openid=ot1UbuBBzlE6IjEDWfyXQW3dy2S4&order_no= 19201704060281699381&time_stamp=1543999047492&transaction_no=69201704060281699381";

  • 第2步:拼接AppSecret: stringSignTemp=stringA+"&app_secret=eRdLi88c6I6L95PFSX1Nq69Y84xLcD3T"

    sign=MD5(stringSignTemp).toUpperCase() //得到C17482AB45EA3C724CB648223ED8E2D2


最后得到最终发送的数据:

app_key:  96c84928b1dce057d110ea3b3880fc83

time_stamp:  1543999047492

sign: C17482AB45EA3C724CB648223ED8E2D2

openid:   ot1UbuBBzlE6IjEDWfyXQW3dy2S4

transaction_no:  69201704060281699381

nonce_str:  ibuaiVcKdpRxkhJA

order_no:  19201704060281699381


注意事项


  • 必须在服务器端计算签名

    客户端⽣成签名地址,可能会导致以下问题:

    1.客户端易被破解,AppSecret有外泄的⻛险,危害严重!

    2.如果⽤户的⼿机端时钟不准,或者不在北京时区,会导致时间验证过期,⽆法访问。 因此签名地址务必在服务器端⽣成。

    3.如不按要求,由此导致的损失,⼈⼈秀概不负责!

  • 签名过期检查

    由⼈⼈秀对商户平台发起的请求,请求参数⾥会有time_stamp(时间戳字段),请商户平台务必根据此字段对请求的签名做过期处理,⼈⼈秀平台建议过期时间为10分钟。

  • 签名失败的问题排查

    1.是否为编码异常导致。⼈⼈秀的请求部分参数会带有中⽂字符,第三方开发者需要先对请求参数做URLDecode 解码,可以在签名时遍历签名参数排查是否有字符乱码。

    2.时间戳是否精确到毫秒,部分平台代码⽣成的时间戳是精确到秒的,需要转换⼀下 


示例代码

// 计算签名类

class RrxAPI

{

    protected $values = array();


    public function __construct($data=array())

    {

        foreach ($data as &$d){

            // 参数解码

            $d = urldecode($d);

        }

        $this->values = $data;

    }


    /**

     * 签名生成算法

     * @param string $secret API密钥

     * @return string 签名

     */

    public function makeSign($secret){

        //签名步骤一:按字典序排序参数

        ksort($this->values);

        $string = $this->ToUrlParams();

        //签名步骤二:在string后加入app_secret

        $string = $string . "&app_secret=".$secret;

        //签名步骤三:MD5加密

        $string = md5($string);

        //签名步骤四:所有字符转为大写

        $result = strtoupper($string);

        return $result;

    }


    /**

     * 格式化参数格式化成url参数

     */

    private function ToUrlParams()

    {

        $buff = "";

        foreach ($this->values as $k => $v)

        {

            // 排除签名参数sign 、空值 、 数组

            if($k != "sign" && $v != "" && !is_array($v)){

                $buff .= $k . "=" . $v . "&";

            }

        }


        $buff = trim($buff, "&");

        return $buff;

    }

}


// 调用签名方法,计算签名

$query_data=[

    'app_key'=>'test_app_key',

    'openid'=>'test_openid',

    'time_stamp'=>'1543999047492',

    'name'=>'张飞'

];


$apiSdk = new RrxAPI($query_data);

$secret = 'test_secret';

$sign=$apiSdk->makeSign($secret);


得到签名为 8F4CC38010A6F917E788ED99518BD589



返回API文档首页


  • 热门产品
    H5
    互动
    微商城
    小程序
    问卷
    积分商城
    海报
    公众号助手
    企微助手
    系统集成
    开放平台
  • 使用帮助
    帮助中心
    干货分享
    设计师入驻
    活动审核和关闭
    投诉举报
  • 联系我们
    关于人人秀
    用户协议
    更新日志
    商务合作 derekyue@rrx.cn
    在线客服 0551-65297210
  • 扫码关注我们
Copyright © 2014-2023 合肥星爵互动信息科技有限公司版权所有   皖ICP备14022481号 增值电信业务经营许可证:皖B2-20200055 备案皖公网安备 34010402701575号