2013-04-25 2 views
2

나는 C#으로 DoReferenceTransaction (SOAP) 프로세스를 호출하려고합니다. 그것은 잘 실행, 데이터가 도착하고 DoReferenceTransactionResponseType의 결과는 오류가 없습니다. 그러나 세부 사항은 DoReferenceTransactionResponseDetails입니다.PayPal DoReferenceTransaction

어디서 변수가 입니까이 응답의 세부 사항을 채우고 있습니까? DoReferenceTransactionResponseDetails.Any에 XML 문자열이 있지만 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); 

response from the upper request

트랜잭션 처리 성공적인 있었는데 페이팔 샌드 박스에 관련 페이지에서 볼 수있다.

답변

1

값이있는 응답을 보내야합니다. 그것은 null이 아니어야합니다.

<?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 
           ) 

         ) 

       ) 

     ) 

) 
+0

당신이 수정 된 질문에 내 결과를 볼 수 있습니다. 거기 뭐가 잘못 됐어? – majo