我正在尝试开发一个简单的应用程序,通过Paypal API,使用户能够从网站购买服务。该应用程序在ASP.NET和C#上运行。
我尝试调用SetExpressCheckout方法并传入适当的变量,但是一直没有成功。
我进行了研究并发现,由于我是在本地主机上测试,这可能会影响Paypal与应用程序的通信。因此,我尝试通过公开端口和可公开访问的IP地址访问我的应用程序,但在调用SetExpressCheckout时仍然出现相同的错误。
以下是错误信息:
Exception Details: System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel.
Source Error:
Line 1790: [return: System.Xml.Serialization.XmlElementAttribute("SetExpressCheckoutResponse", Namespace="urn:ebay:api:PayPalAPI")]
Line 1791: public SetExpressCheckoutResponseType SetExpressCheckout([System.Xml.Serialization.XmlElementAttribute(Namespace="urn:ebay:api:PayPalAPI")] SetExpressCheckoutReq SetExpressCheckoutReq) {
Line 1792: object[] results = this.Invoke("SetExpressCheckout", new object[] {
Line 1793: SetExpressCheckoutReq});
Line 1794: return ((SetExpressCheckoutResponseType)(results[0]));
Source File: c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\anan_p2\730602d6\31a8d74e\App_WebReferences.c8vgyrf8.2.cs Line: 1792
我也尝试过使用OpenSSL生成证书并将其上传到Paypal账户的加密卖家选项,但仍然没有效果。
非常感谢您阅读我的问题!
更新:根据要求,这里是正在使用的代码。
String hostingOn = ConfigurationManager.AppSettings["default_site_url"];
reqDetails.ReturnURL = hostingOn + "marketplace_confirm.aspx";
reqDetails.CancelURL = hostingOn + "marketplace.aspx";
reqDetails.NoShipping = "1";
reqDetails.ReqConfirmShipping = "0";
reqDetails.OrderTotal = new BasicAmountType()
{
currencyID = CurrencyCodeType.CAD,
Value = payment_amt.Value,
};
SetExpressCheckoutReq req = new SetExpressCheckoutReq()
{
SetExpressCheckoutRequest = new SetExpressCheckoutRequestType()
{
Version = UtilPayPalAPI.Version,
SetExpressCheckoutRequestDetails = reqDetails
}
};
PayPalAPIAASoapBinding paypal = new PayPalAPIAASoapBinding();
paypal.SetExpressCheckout(req);
我也在使用 https://api-aa-3t.paypal.com/2.0/ 这个url来访问API。