签名算法

  • 将所有请求参数(key,value 为一组),对数据结构按照key的升序,重新排序
    • 需要对null值进行过滤
    • 需要将boolean型进行转换为1和0
  • 将排序后参数组合为新的字符串 (keyvaluekeyvalue 中间无分割符)
  • 将生成好的字符串进行MD5加密
  • 将新的字符串,统一为大写字符串
  • 将生成好的字符串加上“私钥”,形成新的字符串 (私钥为ERP系统里面生成)
  • 再进行一次MD5加密,得到加密后的字符串
  • 再统一为大写字符串,得到最终的签名字符串

php 示例:

$private_key = '123456';
static function gen_sign($params){
return strtoupper(md5(strtoupper(md5(self::assemble($params))).$this->private_key));}
static function assemble($params){
    if(!is_array($params))  return null;
    ksort($params, SORT_STRING);
    $sign = '';
    foreach($params AS $key=>$val){
        if(is_null($val))   continue;
        if(is_bool($val))   $val = ($val) ? 1 : 0;
        $sign .= $key . (is_array($val) ? self::assemble($val) : $val);
    }
    return $sign;       
}

沪ICP备05002918号

© 2003-2017 ShopEx,Inc.All rights reserved.