从NameValueCollection读取struct

3
我现在正在开发一个支付处理类,但是遇到了一个难题。我正在使用FastSpring电子商务服务,他们有一套不错的工具,但是我卡在了一个问题上。
对于PayPal IPN,要获取人的名字(这是C# / ASP代码),我会这样做:
base.Context.Request.Params["first_name"]

使用FastSpring,他们似乎会在“customer”中存储信息,如此处所示:http://nvsx.net/i/c2252.png 我该如何修改我的代码以正确地从HTTP post上下文中创建该结构?
更新:
NameValueCollection键:http://pastie.org/1346312 客户关键值:{0} --> {1}Customercom.brightmarket.api.variable.v1.contact.ContactVariable@175d7aa

他们没有公开API,所以最好的猜测是你可以使用application/json进行HTTP POST请求和JSON格式内容,或者使用HTTP POST请求并将XML正文发送到Web服务。 如果你能找到他们API的公共链接,我可以提供更多帮助。 - cfeduke
他们成功地将他们的帖子数据发送到我的脚本。我只需要找到一种解释它的方法。但这是那个页面:https://springboard.fastspring.com/assist/doc/variable.xml?name=Order&package=v1 - Eaton
发布一个经过消毒的数据样本会非常有帮助。 - cdhowie
我试图创建上下文的完整转储,但我只能生成NameValueCollection的键列表:http://pastie.org/1346312 - Eaton
@Eaton:sb.AppendLine("{0} --> {1}", str, Context.Request.Params[str]); 此外,您可以编辑您的问题--请在问题本身中发布与问题相关的内容,而不是使用 Pastebin。 - cdhowie
根据该代码的结果进行了更新。(不得不修改它才能使其正常工作) - Eaton
1个回答

1

看起来它已经是一个合适的对象了,不是吗?你只需要进行强制类型转换即可。

你尝试过类似这样的东西吗?

var contact = (ContactVariable)Context.Request.Params[str];

然后使用联系人变量的成员?


C# 不允许将字符串转换为结构体。 ): - Eaton
你那里的东西要么不是字符串,要么是他们端上的对象引用,他们将其转换为字符串——这是错误的。你是将这些数据发送到服务器的人吗?还是他们是?因为从那个字符串中你根本无法解析任何内容。 - cdhowie
你的脚本是作为POST还是GET调用的?如果是GET,也许数据是在实体主体中发送的? - cdhowie
帖子。不过在FastSpring的控制面板中,我有使用Get的选项。 - Eaton
我将在他们的网站上提交支持票。感谢您的帮助,我会将此标记为答案,因为您提供了最多的帮助。 - Eaton
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接