我正在尝试帮助我的儿子升级我去年为他建立的网站。他想实施 Amazon Simple Pay。我非常接近它,但是有一个我不知道如何解决的错误。这是一个用 C# 编写的 ASP.Net 站点。我是一个未经培训(自学)的开发人员,所以请简单地说。;-)
在 ASP.Net 中,Form 中有一个 Form 是不合法的,我需要做一个 Form POST。网上有一个非常漂亮的教程,展示了如何做到这一点。该 URL 是http://weblogs.asp.net/hajan/archive/2011/04/20/amazon-simple-pay-in-asp-net.aspx,如果您有兴趣查看它。
交易必须“签名”,亚马逊提供了一个 SignatureUtils 类来完成此操作。在那堂课上,我这样称呼:
public static string signParameters(IDictionary<String, String> parameters, String key, String HttpMethod, String Host, String RequestURI, String algorithm)
让我感到沮丧的是 IDictionary 参数。我必须传递的是我构建的这个 ListParams NameValueCollection:
public System.Collections.Specialized.NameValueCollection ListParams = new System.Collections.Specialized.NameValueCollection();
它给了我下面的错误,因为它无法将 NameValueCollection 转换为 IDictionary。我尝试明确转换它,但没有喜悦。我该如何解决这个问题?
Error: Argument 1: cannot convert from 'System.Collections.Specialized.NameValueCollection' to 'System.Collections.Generic.IDictionary<string,string>'