微信支付v3.3.6 签名错误

发布于 2022-08-31 20:19:03 字数 133 浏览 16 评论 0

根据微信支付v3.3.6的开发问题,在调用“统一支付”接口,获取预支付ID的时候,如果参数里面有中文总是提示“签名错误”,如果没有中文可以签名成功,有没有谁也遇到过这种情况?
ps:使用的是js+C#,官方文档只有php的demo,求帮助。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

萌化 2022-09-07 20:19:03

检查下你的参数是否正确....生成prepay_id 是几个支付参数进行 Ksort 排序 然后MD5加密 之后发送验证的~可以参考一下微信支付

回忆追雨的时光 2022-09-07 20:19:03

我以前也遇到这个情况,我的问题原因是:参数不要System.Web.HttpUtility.UrlEncode编码。

鱼忆七猫命九 2022-09-07 20:19:03

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

你的他你的她 2022-09-07 20:19:03

我也遇到这个问题了
一天了

岁月打碎记忆 2022-09-07 20:19:03

遇到同样的问题啊!!!!
请问楼主问题解决了吗?
微信的文档我看了一百遍了,参数一个个对的眼珠都要掉下来了。
最后还是提示“签名错误”

木落 2022-09-07 20:19:03

这个签名问题是怎么解决的有没有谁知道呢?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文