簡體   English   中英

使用.NET中的PayPal沙箱,“安全標頭無效”

[英]'Security header is not valid' using PayPal sandbox in .NET

我在ASP.Net C#4.0中使用PayPal沙箱。 我添加了以下Web引用:

https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl
https://www.paypalobjects.com/wsdl/PayPalSvc.wsdl 

當我運行此代碼時:

PayPalAPIHelper.PayPalSandboxWS.SetExpressCheckoutReq req = new PayPalAPIHelper.PayPalSandboxWS.SetExpressCheckoutReq()
        {
            SetExpressCheckoutRequest = new PayPalAPIHelper.PayPalSandboxWS.SetExpressCheckoutRequestType()
            {
                Version = Version,
                SetExpressCheckoutRequestDetails = reqDetails
            }
        };

        // query PayPal and get token
        PayPalAPIHelper.PayPalSandboxWS.SetExpressCheckoutResponseType resp = BuildPayPalSandboxWebservice().SetExpressCheckout(req);

在我的resp對象中,錯誤消息顯示:

安全標頭無效

有人告訴我給它正確的API憑據。 我在developer.paypal.com上注冊,我假設我使用的電子郵件地址和密碼是我的有效憑據。 我如何以及在何處提供我的API憑據? 謝謝

您是否檢查了web.config文件中的端點地址

這些應該參考以下網址

對於API證書=> SOAP https://api.sandbox.paypal.com/2.0/

對於API簽名=> SOAP https://api-3t.sandbox.paypal.com/2.0/

如果您使用的是Signature,請使用以下代碼

CustomSecurityHeaderType type = new CustomSecurityHeaderType();
            type.Credentials = new UserIdPasswordType()
            {
                Username = ConfigurationManager.AppSettings["PayPalUserName"], //Not paypal login username
                Password = ConfigurationManager.AppSettings["PayPalPassword"], //not login password
                Signature = ConfigurationManager.AppSettings["PayPalSignature"]
            };

要獲得Paypal簽名,請點擊鏈接

欲了解更多信息, 請點擊此

更新:

請檢查以下代碼,它對我有用

CustomSecurityHeaderType type = new CustomSecurityHeaderType();
            type.Credentials = new UserIdPasswordType()
            {
                Username = ConfigurationManager.AppSettings["PayPalUserName"],
                Password = ConfigurationManager.AppSettings["PayPalPassword"],
                Signature = ConfigurationManager.AppSettings["PayPalSignature"]
            };


            PaymentDetailsItemType[] pdItem = new PaymentDetailsItemType[1];
            pdItem[0] = new PaymentDetailsItemType() 
            { 
                Amount = new BasicAmountType(){currencyID = CurrencyCodeType.USD,Value = ItemPrice},
                Name = ItemName,
                Number = ItemNumber,
                Description = ItemDescription, 
                ItemURL = ItemUrl
            };

            SetExpressCheckoutRequestDetailsType sdt = new SetExpressCheckoutRequestDetailsType();
            sdt.NoShipping = "1";
            PaymentDetailsType pdt = new PaymentDetailsType()
            {
                OrderDescription = OrderDesc,
                PaymentDetailsItem = pdItem,
                OrderTotal = new BasicAmountType()
                {                    
                    currencyID = CurrencyCodeType.USD,
                    Value = ItemPrice
                }
            };

            sdt.PaymentDetails = new PaymentDetailsType[] { pdt };
            sdt.CancelURL = "http://localhost:62744/PaymentGateway/PaymentFailure.aspx";
            sdt.ReturnURL = "http://localhost:62744/PaymentGateway/ExpressCheckoutSuccess.aspx";

            SetExpressCheckoutReq req = new SetExpressCheckoutReq()
            {
                SetExpressCheckoutRequest = new SetExpressCheckoutRequestType()
                {
                    SetExpressCheckoutRequestDetails = sdt,
                    Version = "92.0"
                }
            };
            var paypalAAInt = new PayPalAPIAAInterfaceClient();
            var resp = paypalAAInt.SetExpressCheckout(ref type, req);
            if (resp.Errors != null && resp.Errors.Length > 0)
            {
                // errors occured
                throw new Exception("Exception(s) occured when calling PayPal. First exception: " +
                    resp.Errors[0].LongMessage);
            }

            Response.Redirect(string.Format("{0}?cmd=_express-checkout&token={1}",
                ConfigurationManager.AppSettings["PayPalOriginalUrl"], resp.Token));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM