2012-05-09 58 views
3

我试图在我的应用程序中实施付款提供商(AdYen)。付款完成后,AdYen会通过HTTP POST请求向我发送一个通知给我在后台提供的URL。例如:从POST发回请求

http://myhost.com/Payment/FinishPayment/

FinishPayment是在付款控制装置的动作方法。呼叫确实在该方法结束,但AdYen给了我以下错误:

The required string "[accepted]" is not in all the results

不知怎的,我必须返回字符串“[接受]”在“notificationResponse”。但是如何?

我看到一个PHP例子只是这样的:

function FinishPayment() // function is called by AdYen 
{ 
    // Do stuff... 

    return array("notificationResponse" => "[accepted]"); 
} 

任何人任何想法如何,我可以发回一个响应在C#.NET MVC3?

+1

[整合手册]的第25页(https://docs.google.com/viewer?a=v&q=cache:fHylPYHsG3cJ:attachment-c02.memonic.ch/p/290d76e5-2907-4458-a479- a90022267bac/08c9f78b-ce2a-4c7e-bdf6-6f1622f6754c/ef4adb890a/IntegrationManual.pdf + HL = EN&GL = US&PID = BL&srcid = ADGEEShU_e3kGcTW-aIcwmAIElEdVMPnBhqVldmVEye_240rrSo8oWB6rHLugVU_7zoDKpn1D1D2YdLBK5ZnHakEo68F__kFwJIQ9rC7xjButQNIVGXLD6xo5hiw-W3MMTbGm39-8Xm0与SIG = AHIEtbSW6PHdaWbenV6qQ-_Sqe6m7k0CoA)解释它。 –

+0

@DavidSchwartz是的,但那是SOAP。我没有在应用程序的任何地方使用SOAP,所以如果可能的话,我想尽量避免使用SOAP。必须有某种方式才能向URL发送请求,例如:http://adyen...com/Notify?response = [accepted] – Vivendi

+0

我不确定为什么您认为必须有办法做到这一点。我没有在文档中看到他们支持SOAP以外的任何建议。 –

回答

2

这是相当老了,但因为我目前正与它的工作,也许它可以帮助任何人在未来

选择HTTP POST而不是SOAP会导致Adyen使每一个通知的POST,所以在MVC 3(或4,或简单的ASP .Net),你可以创建一个通用的处理程序来处理这些请求,并且只需要一个context.Response.Write("[accepted]");。至少在测试环境中,他们似乎认为这些回应是好的。

顺便说一下,它们不会将任何数据的签名作为POST参数发送,但是如果您配置了用户和密码,它们将通过Authorization Header使用基本Http身份验证进行身份验证,以便在你的服务器。