ユーザーが Paypal API を介して Web サイトからサービスを購入できるようにする単純なアプリケーションを開発しようとしています。このアプリケーションは、C# を使用して ASP.NET で実行されています。
Paypal API を連携させようとしても、ほとんど運がありませんでした。私が呼び出しているメソッドは、すべての適切な変数を持つ SetExpressCheckout です。
調査を行ったところ、Localhost でテストしているため、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);
また、API へのアクセスにhttps://api-aa-3t.paypal.com/2.0/ URL を使用しています