2013-07-10 3 views
0

activemerchant에서 작동하도록 cybersource를 가져올 수 없습니다. Activemerchant는 authorize.net 및 paypal에서 잘 작동합니다. 사이트에서 실패한 이후 콘솔에서 테스트하려고합니다.activemerchant cybersource xml 구문 분석 오류

gateway = ActiveMerchant::Billing::CyberSourceGateway.new( 
     :login => "CybersourceUserID", 
     :password => "CybersourceKey", 
     :nexus => "NJ", 
     :vat_reg_number =>"" 
    ) 


response = gateway.authorize(1000, credit_card, :ip => "127.0.0.1", :order_id=>"23434", :email=>"[email protected]") 

이 내가 다시 점점 오전 오류입니다 : 여기에 어떤 조언을 주시면 감사하겠습니다

#<Net::HTTPInternalServerError:0x1113f0838> 
<?xml version="1.0" encoding="UTF-8"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <soap:Fault xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext" xmlns:c="urn:schemas-cybersource-com:transaction-data-1.0"> 
     <faultcode>soap:Client</faultcode> 
     <faultstring> 
      XML parse error. 
      PI with the name 'xml' can occur only in the beginning of the document. 
     </faultstring> 
    </soap:Fault> 
    </soap:Body> 
</soap:Envelope> 

!

감사합니다.

Rob.

------- 여기 가짜 CC 정보 ------이다

credit_card = ActiveMerchant::Billing::CreditCard.new( 
    :type    => "visa", 
    :number    => "4111111111111111", 
    :verification_value => "123", 
    :month    => 1, 
    :year    => 2020, 
    :first_name   => "First", 
    :last_name   => "Last" 
) 

또한 여기에서 생성 된 XML이다 : (개인 정보를 편집)

<?xml version="1.0" encoding="UTF-8"?> 
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
    <s:Header> 
    <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" s:mustUnderstand="1"> 
     <wsse:UsernameToken> 
     <wsse:Username>CybersourceUserID</wsse:Username> 
     <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">CybersourceKey</wsse:Password> 
     </wsse:UsernameToken> 
    </wsse:Security> 
    </s:Header> 
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <requestMessage xmlns="urn:schemas-cybersource-com:transaction-data-1.69"> 
     <merchantID>CybersourceUserID</merchantID> 
     <merchantReferenceCode>23434</merchantReferenceCode> 
     <clientLibrary>Ruby Active Merchant</clientLibrary> 
     <clientLibraryVersion>1.34.1</clientLibraryVersion> 
     <clientEnvironment>i686-darwin12.2.0</clientEnvironment> 
<billTo> 
    <firstName>First</firstName> 
    <lastName>Last</lastName> 
    <street1></street1> 
    <city></city> 
    <state></state> 
    <postalCode></postalCode> 
    <country></country> 
    <email>[email protected]</email> 
</billTo> 
<purchaseTotals> 
    <currency>USD</currency> 
    <grandTotalAmount>10.00</grandTotalAmount> 
</purchaseTotals> 
<card> 
    <accountNumber>4111111111111111</accountNumber> 
    <expirationMonth>01</expirationMonth> 
    <expirationYear>2020</expirationYear> 
    <cvNumber>123</cvNumber> 
    <cardType>001</cardType> 
</card> 
<ccAuthService run="true"/> 
<businessRules> 
</businessRules> 
    </requestMessage> 
    </s:Body> 
</s:Envelope> 

NEW 정보 : 나는 등 올바른 상인 ID와 (위의 XML을 그리고 생산 게이트웨이를 통해이를 처리하기 위해 곱슬 곱슬 사용하는 경우 흥미롭게

,이 얻을 :

로버츠 - 맥북 에어 : 그래서는 XML 파싱 문제가 될 수 있어야합니다 https://ics2ws.ic3.com/commerce/1.x/transactionProcessor

<?xml version="1.0" encoding="utf-8"?> 
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
     <soap:Header> 
     <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
      <wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-1851182716"> 
       <wsu:Created>2013-07-12T03:32:05.030Z</wsu:Created> 
      </wsu:Timestamp> 
     </wsse:Security> 
    </soap:Header> 
    <soap:Body> 
     <c:replyMessage xmlns:c="urn:schemas-cybersource-com:transaction-data-1.69"> 
      <c:merchantReferenceCode> 
       23434 
      </c:merchantReferenceCode> 
      <c:requestID> 
       3735999249970176056695 
      </c:requestID> 
      <c:decision> 
       REJECT 
      </c:decision> 
      <c:reasonCode> 
       101 
      </c:reasonCode> 
      <c:missingField> 
       c:billTo/c:country 
      </c:missingField> 
      <c:missingField> 
       c:billTo/c:city 
      </c:missingField> 
      <c:missingField> 
       c:billTo/c:street1 
      </c:missingField>  
      <c:requestToken> 
      (a token) 
      </c:requestToken> 
      <c:ccAuthReply> 
       <c:reasonCode> 
        101 
       </c:reasonCode> 
      </c:ccAuthReply> 
     </c:replyMessage> 
    </soap:Body> 
</soap:Envelope> 

testxml2.xml : "응용 프로그램/비누 + XML 콘텐츠 유형"--data @를 문서는 $ --header 컬 rlittle 보석에 ???

+0

나는 또한 비슷한 문제에 직면하고있다. 왜 CYbersource가 더 중요한 의미가 아닌 500을 보내는 지 이해할 수 없습니다. 신용 카드를 생성하는 데 사용하는 코드를 게시 할 수 있습니까? 일부 디버깅에 도움이 될 수도 있습니다. – Nerve

+0

또한 암호 필드에서 트랜잭션 키를 사용해야합니다. – Nerve

+0

예, 거래 키는 물론 사이버 스페이스 가맹점 ID를 사용하고 있습니다. –

답변

0

정확하게 문제를 알지는 못하지만, 결국 어떻게 작동하는지 알려 드리겠습니다.

ActiveMerchant::Billing::Base.mode = :test 
ActiveMerchant::Billing::CyberSourceGateway::TEST_URL = 'https://ics2wstest.ic3.com/commerce/1.x/transactionProcessor' 
gateway = ActiveMerchant::Billing::CyberSourceGateway.new(
    login: "<Cyber source Merchant ID>", 
    password: '<Transaction key>', 
    test: true, 
    ignore_avs: true 
) 

credit_card = ActiveMerchant::Billing::CreditCard.new(
    :type    => "visa", 
    :number    => "4111111111111111", 
    :verification_value => "123", 
    :month    => 1, 
    :year    => Time.now.year+1, 
    :first_name   => "Test", 
    :last_name   => "Test1" 
) 
response = gateway.authorize(1000, credit_card, :ip => "127.0.0.1", order_id: "jdgjsahgd", email: "[email protected]") 

Remeber : 로그인은 사용자 이름이 아니라 사이버 스페이스 가맹점 ID입니다.

+0

예, 사이버 공간 판매자 ID에 대해 알고 있습니다. 내 문제가 구문 분석하는 것 같습니다. 아직도 나를 위해 일하지 않습니다. –

0

도움 주셔서 감사합니다.

나는 cybersource에 연락했다 (그들은 매우 도움이되었다).

오늘 밤은 일하기 시작 했으므로 끝까지 무언가를 고쳤습니다.