京东签名认证Sign

  public static string SignToMd5(Dictionary<string, object> @params, string secret)
        {
            var sortDic = new SortedDictionary<string, object>(@params);
            var query = new StringBuilder(secret);
            foreach (var item in sortDic)
            {
                if (item.Key != "secretkey")
                {
                    if (string.IsNullOrEmpty(item.Key)) continue;
                    query.Append(item.Key).Append(item.Value);
                }
            }
            query.Append(secret);
            var md5 = MD5.Create();
            var bytes = md5.ComputeHash(Encoding.UTF8.GetBytes(query.ToString()));
            return string.Join("", bytes.Select(x => x.ToString("X2")));
        }

当access_token为空时不用传入,要不然 会出现签名错误 

传参

 var signParams = new Dictionary<string, object>
            {
                {"method", "jd.union.open.goods.jingfen.query"},
                {"app_key", appkey},
                {"timestamp", times},
                {"format", "json"},
                {"v", "1.0"},
                {"sign_method", "md5"}
            };
            var urlParams = string.Empty;
            signParams.Add("param_json", @"{""goodsReq"":{""eliteId"":""1""}}"); // param json 参与加密但是不参与url
            foreach (var item in signParams)
            {
                urlParams += $"&{item.Key}={HttpUtility.UrlEncode(item.Value.ToString(), Encoding.UTF8)}";
            }
            var sign = PddInterface.SignToMd5(signParams, secretkey);
            urlParams += "&sign=" + sign;

            var url = "https://router.jd.com/api?" + urlParams.TrimStart('&');
            jstring = PddInterface.HttpGetConnectToServer(url);

 

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值