2013-05-03 40 views
1

我想在ASP.NET C#代码中使用SOAP 2.0 API设置PayPal快速结帐。首先,我尝试使用沙箱,我创建了卖方/买方测试帐户,导入的Web服务,然后我试图让的道理,在我的C#代码,我有:快速PayPal结帐,无法创建SSL/TLS安全通道

 // Create the request object 
     SetExpressCheckoutRequestType pp_request = new SetExpressCheckoutRequestType(); 

     // Create the request details object 
     pp_request.SetExpressCheckoutRequestDetails = new SetExpressCheckoutRequestDetailsType(); 
     pp_request.SetExpressCheckoutRequestDetails.PaymentAction = paymentAction; 
     pp_request.SetExpressCheckoutRequestDetails.PaymentActionSpecified = true; 

     pp_request.SetExpressCheckoutRequestDetails.OrderTotal = new BasicAmountType(); 

     pp_request.SetExpressCheckoutRequestDetails.OrderTotal.currencyID = currencyCodeType; 
     pp_request.SetExpressCheckoutRequestDetails.OrderTotal.Value = paymentAmount; 

     pp_request.SetExpressCheckoutRequestDetails.CancelURL = cancelURL; 
     pp_request.SetExpressCheckoutRequestDetails.ReturnURL = returnURL; 

     SetExpressCheckoutResponseType response = (SetExpressCheckoutResponseType) caller.Call("SetExpressCheckout", pp_request); 

,但该代码的最后一行,它抛出错误:

请求已中止:无法创建SSL/TLS安全通道。

我做错了吗? 谢谢。

+0

你可以使用这个库,而不是:https://nuget.org/packages/Moolah – 2013-05-03 16:03:50

+0

它没有解决我的问题 – ihorko 2013-05-03 16:48:19

回答

1

您的代码当然看起来是正确的,但PayPal API在涉及到几件事情时可能会很挑剔。有一点需要注意的是,如果付款金额未达到小数点后两位,它会产生例外情况 - 您是否可以确保确保这种情况?

还要确保您的配置值是正确的。除此之外,您发布的代码正是我以前用于SOAP API的代码。

我停止使用SOAP API前一阵子有利于NVP API,它在我心目中是一个有点容易对付的:https://cms.paypal.com/uk/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_NVPAPIOverview

我提供一个库来完成所有的工作,为您提供: https://github.com/davidduffett/Moolah

此处的说明显示究竟如何使用PayPal快速结账:https://github.com/davidduffett/Moolah#paypal-express-checkout

+0

大卫喜, 我试过你的libr ary,它给了我一个例外“请求被中止:无法创建SSL/TLS安全通道。” 你能指导我解决这个问题吗? – 2016-01-22 17:08:44

+0

伙计,与图书馆的惊人的工作!,但寻找Sarim的评论。确实需要做一些小的修改。 @SarimShekhani:看到这里! http://stackoverflow.com/a/34950820/1057052 – 2016-02-14 22:21:02

+0

等等!搞定了!太感谢了。记得我以前评论的链接?那么,我们只需要添加ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;在使用“SetExpressCheckout”之前。在我的情况下,为了安全起见,我在var gateway = new PayPalExpressCheckout(configuration)之前上传它, – 2016-02-14 22:29:22