Express PayPal 结帐,无法创建 SSL/TLS 安全通道
Posted
技术标签:
【中文标题】Express PayPal 结帐,无法创建 SSL/TLS 安全通道【英文标题】:Express PayPal checkout, Could not create SSL/TLS secure channel 【发布时间】:2013-04-28 01:55:47 【问题描述】:我正在尝试在 ASP.NET C# 代码中使用 SOAP 2.0 API 设置 paypal express checkout。首先,我尝试使用沙盒,创建卖方/买方测试帐户,导入 Web 服务,然后尝试获取令牌,在我的 C# 代码中:
// 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 安全通道。
我做错了吗? 谢谢。
【问题讨论】:
你可以改用这个库:nuget.org/packages/Moolah 它不能解决我的问题 【参考方案1】:您的代码看起来确实是正确的,但 PayPal API 在涉及到一些事情时可能会很挑剔。需要注意的一件事是,当付款金额未四舍五入到小数点后 2 位时,它会产生异常 - 您可以尝试确保是这种情况吗?
还要确保您的配置值是正确的。除此之外,您发布的代码正是我用于 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 Express Checkout:https://github.com/davidduffett/Moolah#paypal-express-checkout
【讨论】:
嗨大卫,我试过你的图书馆,它给了我一个例外“请求被中止:无法创建 SSL/TLS 安全通道。”你能指导我解决这个问题吗? 老兄,图书馆的工作真是太棒了!但请注意 Sarim 的评论。确实需要进行一些小的修改。 @SarimShekhani:看这里! ***.com/a/34950820/1057052 等等!搞定了!太感谢了。还记得我之前评论的链接吗?好吧,我们只需要添加 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;在使用“SetExpressCheckout”之前。就我而言,为了安全起见,我在 var gateway = new PayPalExpressCheckout(configuration)以上是关于Express PayPal 结帐,无法创建 SSL/TLS 安全通道的主要内容,如果未能解决你的问题,请参考以下文章
Omnipay - 使用 Paypal Express 结帐 Laravel
使用 Activemerchant Gem 切换到多个商家帐户以进行 Paypal Express 结帐