2

我用 C#调用进程DoReferenceTransaction (SOAP) 。它运行良好,数据到达并且结果DoReferenceTransactionResponseType没有错误。但细节DoReferenceTransactionResponseDetails永远是空的。

是否有任何变量可以填充响应中的详细信息?我在其中找到了一个 XML 字符串,DoReferenceTransactionResponseDetails.Any但如果它在其中,为什么我要从 xml 中排除数据DoReferenceTransactionResponseDetails

我必须拥有的是TransactionID来自 PayPal 的。

谢谢

请求示例:

  request = new DoReferenceTransactionReq();
  request.DoReferenceTransactionRequest = new DoReferenceTransactionRequestType();
  request.DoReferenceTransactionRequest.Version = "98.0";
  request.DoReferenceTransactionRequest.DoReferenceTransactionRequestDetails = new DoReferenceTransactionRequestDetailsType();
  request.DoReferenceTransactionRequest.DoReferenceTransactionRequestDetails.PaymentAction = PaymentActionCodeType.Sale;
  request.DoReferenceTransactionRequest.DoReferenceTransactionRequestDetails.PaymentType = MerchantPullPaymentCodeType.Any;
  request.DoReferenceTransactionRequest.DoReferenceTransactionRequestDetails.PaymentDetails = new PaymentDetailsType();
  request.DoReferenceTransactionRequest.DoReferenceTransactionRequestDetails.PaymentDetails.OrderTotal = new BasicAmountType();
  request.DoReferenceTransactionRequest.DoReferenceTransactionRequestDetails.PaymentDetails.OrderTotal.Value = "100";
  request.DoReferenceTransactionRequest.DoReferenceTransactionRequestDetails.PaymentDetails.OrderTotal.currencyID = CurrencyCodeType.CHF;
  request.DoReferenceTransactionRequest.DoReferenceTransactionRequestDetails.ReferenceID = "XXXX";

  DoReferenceTransactionResponseType response = service.DoReferenceTransaction(request);

来自上层请求的响应

交易已成功处理,我可以在贝宝沙盒的页面概述中看到它。

4

1 回答 1

1

您应该得到带有值的响应。它不应该为空。例如,我正在传递以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:ebay:apis:eBLBaseComponents" xmlns:ns2="urn:ebay:api:PayPalAPI">
  <SOAP-ENV:Header>
    <ns2:RequesterCredentials>
      <ns1:Credentials>
        <ns1:Username>%Username%</ns1:Username>
        <ns1:Password>%Password%</ns1:Password>
        <ns1:Signature>%Signature%</ns1:Signature>  
      </ns1:Credentials>
    </ns2:RequesterCredentials>
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <ns2:DoReferenceTransactionReq>
      <ns2:DoReferenceTransactionRequest>
        <ns1:Version>84.0</ns1:Version>
        <ns1:DoReferenceTransactionRequestDetails>  
          <ns1:ReferenceID>1A381834JN903220E</ns1:ReferenceID>  
          <ns1:PaymentAction>Sale</ns1:PaymentAction>
          <ns1:PaymentType>Any</ns1:PaymentType>
          <ns1:PaymentDetails>
            <ns1:OrderTotal currencyID="USD">10.00</ns1:OrderTotal>
            <ns1:PaymentAction>Sale</ns1:PaymentAction>
          </ns1:PaymentDetails>
          <ns1:IPAddress>10.243.180.150</ns1:IPAddress>
        </ns1:DoReferenceTransactionRequestDetails>
      </ns2:DoReferenceTransactionRequest>
    </ns2:DoReferenceTransactionReq>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

我在 API 响应中返回以下内容:

Array
(
    [name] => DoReferenceTransactionResponse
    [elements] => Array
        (
            [0] => Array
                (
                    [name] => Timestamp
                    [text] => 2013-04-25T13:22:14Z
                )

            [1] => Array
                (
                    [name] => Ack
                    [text] => Success
                )

            [2] => Array
                (
                    [name] => CorrelationID
                    [text] => 748fcba0bc2e7
                )

            [3] => Array
                (
                    [name] => Version
                    [text] => 84.0
                )

            [4] => Array
                (
                    [name] => Build
                    [text] => 5650305
                )

            [5] => Array
                (
                    [name] => DoReferenceTransactionResponseDetails
                    [elements] => Array
                        (
                            [0] => Array
                                (
                                    [name] => Amount
                                    [text] => 10.00
                                )

                            [1] => Array
                                (
                                    [name] => AVSCode
                                    [text] => X
                                )

                            [2] => Array
                                (
                                    [name] => CVV2Code
                                    [text] => M
                                )

                            [3] => Array
                                (
                                    [name] => TransactionID
                                    [text] => 2PR97363S20425407
                                )

                        )

                )

        )

)
于 2013-04-25T13:24:43.983 回答