예제 #1
0
        /// <summary>
        /// 对响应验签
        /// 调用方向:掌上生活 --> 商户
        /// </summary>
        /// <param name="response">响应报文</param>
        /// <param name="verifyKey">验签所使用的Key,为掌上生活公钥</param>
        /// <param name="verifyAlgorithm">验签算法(SHA1WithRSA 或 SHA256WithRSA)</param>
        /// <returns>true为验签成功,false为验签失败</returns>
        public static bool VerifyForResponse(String response, String verifyKey, String verifyAlgorithm)
        {
            Dictionary <string, object> verifySignParams = JsonUtils.JsonStrToDic(response);
            string sign = verifySignParams["sign"].ToString();

            if (string.IsNullOrEmpty(sign))
            {
                throw new ArgumentException("返回报文参数中sign字段为空!");
            }
            verifySignParams.Remove("sign");
            Console.WriteLine(URLUtils.AssembleUrl("", verifySignParams, false));
            return(Verify(URLUtils.AssembleUrl("", verifySignParams, false), sign, verifyKey, verifyAlgorithm));
        }
예제 #2
0
 /// <summary>
 /// 生成请求报文体
 /// </summary>
 /// <param name="dicParams">参数</param>
 /// <returns>请求报文体,如: key1=value1&key2=value2...</returns>
 public static string GenRequestBody(Dictionary <string, object> dicParams)
 {
     return(URLUtils.AssembleUrl(null, dicParams, true));
 }
예제 #3
0
        /// <summary>
        /// 对请求签名
        /// 调用方向:商户 --> 掌上生活
        /// </summary>
        /// <param name="prefix">前缀,如interface.json</param>
        /// <param name="paramsDic">待签名数据</param>
        /// <param name="xmlPrivateKey">签名使用的key,为商户私钥</param>
        /// <param name="signAlgorithm">签名算法(SHA1WithRSA 或 SHA256WithRSA)</param>
        /// <returns>签名</returns>
        public static string SignForRequest(string prefix, Dictionary <string, object> paramsDic, string xmlPrivateKey, string signAlgorithm)
        {
            string url = URLUtils.AssembleUrl(prefix, paramsDic, false);

            return(Sign(url, xmlPrivateKey, signAlgorithm));
        }