首页 新闻 搜索 专区 学院

.net支付成功后返回验证失败responseTxt不等于true

0
悬赏园豆:10 [已解决问题] 解决于 2014-01-14 16:55

支付成功后 跳转回页面return_url.aspx,时返回验证失败。打印出来的sign=my sign ,responseTxt=FILLEGAL_SWITCH_SYSTEM
不知道怎么解决 什么原因  请高手们指导一下 给个建议,在线等。。。。

 

//responsetTxt的结果不是true,与服务器设置问题、合作身份者ID、notify_id一分钟失效有关  合作身份者id确认是正确的,服务器设置 和notify_id一分钟失效怎么检查是哪个的原因?

acmzs的主页 acmzs | 初学一级 | 园豆:145
提问于:2013-05-26 13:01
< >
分享
最佳答案
0

支付宝 插件 一般只用到  合作身份者ID,key ,订单编号  其他的参数  传值就行了。剩下的一个异步同步的页面和一个返回的页面里面要写自己的数据库操作。在他提供的class里面  合作身份者ID,key ,订单编号 是都要加上的

收获园豆:10
浮世之绘 | 菜鸟二级 |园豆:240 | 2013-06-07 17:00
其他回答(1)
0

没头没尾, 没法猜

悟了 | 园豆:521 (小虾三级) | 2013-05-26 13:17
 /// <summary>
        ///  验证消息是否是支付宝发出的合法消息
        /// </summary>
        /// <param name="inputPara">通知返回参数数组</param>
        /// <param name="notify_id">通知验证ID</param>
        /// <param name="sign">支付宝生成的签名结果</param>
        /// <returns>验证结果</returns>
        public bool Verify(SortedDictionary<string, string> inputPara, string notify_id, string sign)
        {
            //获取返回回来的待签名数组签名后结果
            string mysign = GetResponseMysign(inputPara);
            //获取是否是支付宝服务器发来的请求的验证结果
            string responseTxt = "true";
            if (notify_id != "") { responseTxt = GetResponseTxt(notify_id); }

            //写日志记录(若要调试,请取消下面两行注释)
            //string sWord = "responseTxt=" + responseTxt + "\n sign=" + sign + "&mysign=" + mysign + "\n 返回回来的参数:" + GetPreSignStr(inputPara) + "\n ";
            //Core.LogResult(sWord);

            //验证
            //responsetTxt的结果不是true,与服务器设置问题、合作身份者ID、notify_id一分钟失效有关
            //mysign与sign不等,与安全校验码、请求时的参数格式(如:带自定义参数等)、编码格式有关
            if (responseTxt == "true" && sign == mysign)//验证成功
            {
                return true;
            }
            else//验证失败
            {
                return false;
            }
        }
支持(0) 反对(0) acmzs | 园豆:145 (初学一级) | 2013-05-26 13:23

@acmzs: 支付宝提供的代码吧, 他们没有客服么, 打电话是最容易的

支持(0) 反对(0) 悟了 | 园豆:521 (小虾三级) | 2013-05-26 13:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册