<?phpclass Sign{
static function mySign($para,$key,$secret)
{
$para_filter = self::paraFilter($para);
$para_sort = self::argSort($para_filter);
$mysign = self::buildMysign($para_sort, $key,$secret);
return $mysign;
}
static function paraFilter($para) {
$para_filter = array();
foreach($para as $key=>$value){
if($key == "sign" || $key == "filter" || $value == "")continue;
else $para_filter[$key] = $para[$key];
}
return $para_filter;
}
static function argSort($para) {
ksort($para);
reset($para);
return $para;
}
static function buildMysign($sort_para,$key,$secret) {
$prestr=$key;
$prestr = $prestr.self::createLinkstring($sort_para);
$prestr = $prestr.$secret;
//$prestr= utf8_encode( $prestr);
$mysign = strtoupper(sha1($prestr));
return $mysign;
}
static function createLinkstring($para) {
$arg = "";
foreach ($para as $key=>$value){
$arg .= $key.$value;
}
return $arg;
}
}
?>PHPC#
static function mySign($para,$key,$secret)
{
$para_filter = self::paraFilter($para);
$para_sort = self::argSort($para_filter);
$mysign = self::buildMysign($para_sort, $key,$secret);
return $mysign;
}
static function paraFilter($para) {
$para_filter = array();
foreach($para as $key=>$value){
if($key == "sign" || $key == "filter" || $value == "")continue;
else $para_filter[$key] = $para[$key];
}
return $para_filter;
}
static function argSort($para) {
ksort($para);
reset($para);
return $para;
}
static function buildMysign($sort_para,$key,$secret) {
$prestr=$key;
$prestr = $prestr.self::createLinkstring($sort_para);
$prestr = $prestr.$secret;
//$prestr= utf8_encode( $prestr);
$mysign = strtoupper(sha1($prestr));
return $mysign;
}
static function createLinkstring($para) {
$arg = "";
foreach ($para as $key=>$value){
$arg .= $key.$value;
}
return $arg;
}
}
?>PHPC#
{
public static string mySign(Dictionary<string, string> para, string key, string secret)
{
var para_filter = paraFilter(para); var para_sort = argSort(para_filter); var mysign = buildMysign(para_sort, key, secret); return mysign;
} private static Dictionary<string, string> paraFilter(Dictionary<string, string> para)
{
var para_filter = new Dictionary<string, string>(); foreach (var item in para)
{
if (item.Key.Equals("sign") || item.Key.Equals("filter") || item.Value.Equals("")) continue;
para_filter.Add(item.Key, item.Value);
}
return para_filter;
} private static Dictionary<string, string> argSort(Dictionary<string, string> para)
{
return para.OrderBy(p => p.Key).ToDictionary(p => p.Key, p => p.Value); } private static string buildMysign(Dictionary<string, string> sort_para, string key, string secret)
{
var prestr = key; prestr = prestr + createLinkstring(sort_para); prestr = prestr + secret; //$prestr= utf8_encode( $prestr); SHA1 sha = new SHA1CryptoServiceProvider();
string mysign = BitConverter.ToString(sha.ComputeHash(Encoding.UTF8.GetBytes(prestr))).ToUpper(); return mysign;
} private static string createLinkstring(Dictionary<string, string> para)
{
string arg = "";
foreach (var item in para)
{
arg += item.Key + item.Value;
} return arg;
}
}