微信支付页面监听错误事件 出现'invalid signature'

wx.error(function (res) {
if(res.errMsg.indexOf("invalid signature") > 0 )
{
alert("无效的签名,需要更新");
}
else{alert(res.errMsg);}
});
在支付页面弹出错误提示:无效的签名,需要更新,求大神告知错误原因

这个 你这部分代码就是 弹出的框的内容,你得看看监听的接口的问题,不应该找这里的问题。

https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3
看看你的签名对不对

   /// <summary>
    /// 获取微信支付JS包
    /// </summary>
    /// <param name="repayId">预支付ID</param>
    /// <returns></returns>
    public wxHandleModel.wxPayconfig GetwxPay(string repayId)
    {
        wxHandleModel.wxPayconfig wxpayconfig = new wxHandleModel.wxPayconfig();
        string package = string.Format("prepay_id={0}", repayId);
        wxpayconfig.package = package;
        wxpayconfig.timestamp = ConvertDateTimeInt(DateTime.Now);
        string nostr = GenerateCheckCode(16);
        wxpayconfig.nonceStr = nostr;
        wxpayconfig.signType = "MD5";
        string stringA = string.Format(@"appid={0}&nonceStr={1}&package={2}&signType={3}&timeStamp={4}&key={5}"
            , appid, wxpayconfig.nonceStr, wxpayconfig.package, wxpayconfig.signType, wxpayconfig.timestamp, appkey);
        wxpayconfig.paySign = MD5(stringA).ToUpper();
        return wxpayconfig;
    }

            这个是获取支付签名的
    /// <summary>
    /// 获取签名
    /// </summary>
    /// <returns>sin签名</returns>
    public string getSin(Hashtable ParametersTosin,string appkey)
    {
        StringBuilder sb = new StringBuilder();
        ArrayList akeys = new ArrayList(ParametersTosin.Keys);
        akeys.Sort();
        foreach (string k in akeys)
        {
            string v = (string)ParametersTosin[k];
            if (null != v && "".CompareTo(v) != 0 && "sign".CompareTo(k) != 0 && "key".CompareTo(k) != 0)
            {
                sb.Append(k + "=" + v + "&");
            }
        }
        sb.Append("key=" + appkey);
        string sign = MD5(sb.ToString()).ToUpper();
        return sign;
    }