zoukankan      html  css  js  c++  java
  • 支付宝集成问题(.net篇)

    最近在网站集成支付宝时,发现了两个比较容易出现的问题,网站找了一下也没有太多相关这方面的答案,我把我的解决方法贴出来。希望可以帮到需要的朋友:

        第一种情况:无法解析远程主机www.alipay.com
        第二种情况:MD5解密出错

        第一种情况,主要出现在虚拟主机上的情况比较多。一开始以为是DNS有问题,但事实上DNS没有问题。后来发现造成这个原因是因为支付宝的类中,使用HttpWebRequest 会在服务端向支付宝网关发送请求数据,但一般服务器对浏览器的安全设置比较高。造成发送不成功,这个时候只需要把网址加入信任域就可以了。方法很简单:通过浏览器访问一下www.alipay.com 然后加入信任域就可以了。最好加*.aplipay.com。这个是解决办法之一,希望可以帮助到你。

        第二种情况,MD5解密出错,解决这个问题找了好久都没有发现,实在没有办法只好写了个日志文件,通过对比才发现问题出在这儿。在支付宝的构造待md5摘要字符串时:

          NameValueCollection coll = Request.QueryString;

          String[] requestarr = coll.AllKeys;

      

                for (i = 0; i < Sortedstr.Length; i++)
                {
                    if (Request.Form[Sortedstr[i]] != "" && Sortedstr[i] != "sign" && Sortedstr[i] != "sign_type")

                    //支付宝只排除了自身参数,很有可能还有其他的参数,在集成到DISCUZ!NT中时就发现了还有一个有关模板的参数,也要排除掉。
                    {
                        if (i == Sortedstr.Length - 1)
                        {
                            prestr.Append(Sortedstr[i] + "=" + Request.QueryString[Sortedstr[i]]);
                        }
                        else
                        {
                            prestr.Append(Sortedstr[i] + "=" + Request.QueryString[Sortedstr[i]] + "&");

                        }
                    }
                }

    上面的问题你有没有碰到呢!我就碰到了!

  • 相关阅读:
    c/c++基础 输入函数/流
    数据库的码/键
    sql plus笔记
    cmd delete oracle related
    CAN总线
    SAR ADC : 逐次逼近寄存器型(SAR)模数转换器(ADC)
    Cortex-M3寄存器等基础知识
    Cortex-M3知识点
    ARM指令和Thumb指令区别
    8051、ARM、AVR
  • 原文地址:https://www.cnblogs.com/stangray/p/1688273.html
Copyright © 2011-2022 走看看