1

首先,这与桌面应用程序而不是 ASP .Net 应用程序有关。

我为我的项目添加了一个 Web 引用,并构建了各种数据对象,例如 PayerInfo、Address 和 CreditCard。问题是,我如何实际调用 DoDirectPaymentRequest 并传入对象?根据文档,我使用 CallerService 和 ProfileFactory 对象,但我没有这些可用。

任何想法我如何从 EXE 调用 API?

问候

4

1 回答 1

0

在您的项目中使用服务参考而不是 Web 参考。您应该创建一个PayPalAPIInterfaceClientPayPalAPIAAInterfaceClient的实例。之后,您将能够调用 DoDirectPayment。

例子:

        DoDirectPaymentResponseType result;
        using (_client = new PayPalAPIAAInterfaceClient())
        {

            DoDirectPaymentRequestType pp_Request = new DoDirectPaymentRequestType();
            pp_Request.Version = _version;
            pp_Request.DoDirectPaymentRequestDetails = new DoDirectPaymentRequestDetailsType();
            pp_Request.DoDirectPaymentRequestDetails.IPAddress = ipAddress;
            pp_Request.DoDirectPaymentRequestDetails.CreditCard = new CreditCardDetailsType();
            pp_Request.DoDirectPaymentRequestDetails.CreditCard.CreditCardNumber = CCNum;

            // ..FILL DATA

            // NOTE: The only currency supported by the Direct Payment API at this time is US dollars (USD).
            pp_Request.DoDirectPaymentRequestDetails.PaymentDetails.OrderTotal.currencyID = CurrencyCodeType.USD;
            pp_Request.DoDirectPaymentRequestDetails.PaymentDetails.OrderTotal.Value = amountOfUSD;

            var dp = new DoDirectPaymentReq
            {
                DoDirectPaymentRequest = pp_Request
            };

            var credentials = new CustomSecurityHeaderType
            {
                Credentials = new UserIdPasswordType
                {
                    Username = _username,
                    Password = _password,
                    Signature = _signature,
                    AppId = ApiId
                }
             };

            result = _client.DoDirectPayment(ref credentials, dp);
        }
于 2012-10-31T12:11:01.550 回答