根据微信支付v3.3.6的开发问题,在调用“统一支付”接口,获取预支付ID的时候,如果参数里面有中文总是提示“签名错误”,如果没有中文可以签名成功,有没有谁也遇到过这种情况?
ps:使用的是js+C#,官方文档只有php的demo,求帮助。
遇到同样的问题啊!!!!
请问楼主问题解决了吗?
微信的文档我看了一百遍了,参数一个个对的眼珠都要掉下来了。
最后还是提示“签名错误”
我以前也遇到这个情况,我的问题原因是:参数不要System.Web.HttpUtility.UrlEncode编码。
这个签名问题是怎么解决的有没有谁知道呢?
http://www.cnblogs.com/zhangs1986/p/4043987.html
/// <summary>
/// 请求签名。
/// </summary>
/// <param name="parameters">所有字符型的非secret请求参数</param>
/// <param name="secret">签名密钥</param>
/// <returns>签名</returns>
public static string SignRequest(IDictionary<string, string> parameters, string secret)
{
string string1 = string.Join("&", parameters
.Where(t => !string.IsNullOrEmpty(t.Key) && !string.IsNullOrEmpty(t.Value))
.OrderBy(t => t.Key)
.Select(t => t.Key + "=" + t.Value));
string1 += "&key=" + secret;
MD5 md5 = MD5.Create();
byte[] bytes = md5.ComputeHash(Encoding.UTF8.GetBytes(string1));
StringBuilder result = new StringBuilder();
for (int i = 0; i < bytes.Length; i++)
{
result.Append(bytes[i].ToString("X2"));
}
return result.ToString();
}
http://blog.csdn.net/qiwenmingshiwo/article/details/41902551
检查下你的参数是否正确....生成prepay_id 是几个支付参数进行 Ksort 排序 然后MD5加密 之后发送验证的~可以参考一下微信支付
我也遇到这个问题了
一天了