SignedCms的Decode(byte[])这个方法时,报错,{"ASN1 遇到了不正确的标记值。\r\n"},是什么问题啊? 同志啊!这个接口我纠结1个月了。今天上午我还可以验签,下午的时候突然就不能了,也在努力找原因呢!我现在是【ASN1异常的数据结尾】。同志有什么心得提示一下啊。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对了,顺便提示你一下,demo上说的DN是做更严格的验证是不对的。这个DN需要用来做证书匹对。//Check dn if (cms.Certificates.Count > 0) { //创建本地证书实例 X509Certificate2 certificado = new X509Certificate2(证书路径); dn = certificado.Subject; //获取关联的证书 X509Certificate2 cert = cms.Certificates[0]; //通过证书主题名称来验证证书 if (!string.IsNullOrEmpty(dn) && !dn.Equals(cert.Subject)) { b = false; } }如果证书名字不一致,表示不是中行发送的消息,我也是根据与中行接口人员沟通理解来的,如果你有不一样的看法,请一定通知我啊。 1. X509Certificate2 这你可以给 返回成 true 模拟浏览器就不会有证书的 检测了 2.http 参数中 不允许出现非法字符你 做好 urlencode下 。 同志,我的问题解决了。你看看你是不是对中行返回的消息做了HttpUtility.HtmlDecode()操作,因为,在他们的callback消息中【errdesc】字段是编码过的,如果你做了这个操作就可能会导致你上面的问题出现。 如果参数用true的话,就没有对证书做验证,仅仅能得到一个【签名和明文是匹配】的结果,对安全没有任何意义啊?现在中行的付款接口会有两个返回消息,一个是通过【NotifyUrl】这个是系统自动callback,另一个通过【ReturnUrl】通过用户点击【返回商城】按钮来触发。第二个消息做过UrlEncode()。需要做一个UrlDecode()并去掉参数。才能正常解析。 谢谢c00lspig,确实是转换时候的编码问题 ankang,很不好意思,关于这个验签的理解,我有部分错误了,最近才有了进一步的了解,其实验签不需要在用证书来匹配验证了。实际上这里验签甚至都不用传入dn。 c00lspig,我也遇到中行B2C,付款成功后,callback验签的不通过的问题,能麻烦你告知是怎么解决的吗?我QQ:14079613 商户号|商户订单号|银行订单流水号|银行卡类别|支付时间|订单状态|支付金额merchantNo|orderNo|orderSeq|cardTyp|payTime|orderStatus|payAmount按照上述格式组装数据后,还需要做特殊处理么,或者要对signData做特殊处理?请前辈指点指点~~~ 忘记说明问题,cms.CheckSignature(true);直接报异常:无效签名 在第三方图形控件上如何再画上自己的图形 VB.net程序运行正常,移植到C#上就出现问题了!求VB和C#都通的高手解答!!万分感激!!! 关于SQL语句参数的问题 压缩下载代码 局域网共享的权限设置 DotNet高级应用!(WebForm中DataGrid部分) C#编写一个USB接口通信的程序 使用正则表达式操作INI问题 急! 菜鸟求问,这个程序怎么在vs2010下编译通过呢??? 强制让datagridview控件的某一单元格进入编辑状态 通过 句柄 获取 IWebBrowser2 对象或者 document 对象?
//Check dn
if (cms.Certificates.Count > 0)
{
//创建本地证书实例
X509Certificate2 certificado = new X509Certificate2(证书路径);
dn = certificado.Subject;
//获取关联的证书
X509Certificate2 cert = cms.Certificates[0];
//通过证书主题名称来验证证书
if (!string.IsNullOrEmpty(dn) && !dn.Equals(cert.Subject))
{
b = false;
}
}如果证书名字不一致,表示不是中行发送的消息,我也是根据与中行接口人员沟通理解来的,如果你有不一样的看法,请一定通知我啊。
如果参数用true的话,就没有对证书做验证,仅仅能得到一个【签名和明文是匹配】的结果,对安全没有任何意义啊?现在中行的付款接口会有两个返回消息,一个是通过【NotifyUrl】这个是系统自动callback,另一个通过【ReturnUrl】通过用户点击【返回商城】按钮来触发。第二个消息做过UrlEncode()。需要做一个UrlDecode()并去掉参数。才能正常解析。
merchantNo|orderNo|orderSeq|cardTyp|payTime|orderStatus|payAmount按照上述格式组装数据后,还需要做特殊处理么,或者要对signData做特殊处理?请前辈指点指点~~~