2014-03-12 8 views
0

authorize.net에서 ARB를 사용했습니다. PHP 및 XML을 사용하여 ARB에서 구독을 만들 것을 요청합니다. 로컬에서 제대로 작동하지만 파일을 업로드했습니다. 서버에 다음 오류가 표시됩니다.이름은 ARB 요청에서 ''문자로 시작될 수 없습니다.

오류 메시지 : 이름은 '16 진수 0x20 문자로 시작할 수 없습니다. 1 호선, 위치 (406)

오류 코드 : E00003

사람이 문제를 해결하는 방법을 제안 시겠어요, 내가 서버에 접속했을까요? 다음은

내가 요청하는 데 사용했다 XML 파일, 다음 또한 양식 에 전달 첫째

$firstName = trim($firstName) ; 
$lastName = trim($lastName) ; 

으로 PHP 트림을 통해

$content ="<?xml version=\"1.0\" encoding=\"utf-8\"?>" . 
     "<ARBCreateSubscriptionRequest xmlns=\"AnetApi/xml/v1/schema/AnetApiSchema.xsd\">" . 
     "<merchantAuthentication>". 
     "<name>5A3RXdSct55</name>". 
     "<transactionKey>" . $transactionkey . "</transactionKey>". 
     "</merchantAuthentication>". 
     "<refId>" .$refId . "</refId>". 
     "<subscription>". 
     "<name>Monthly Subscription</name>". 
     "<paymentSchedule>". 
     "<interval>". 
     "<length>". $length ."</length>". 
     "<unit>". $unit ."</unit>". 
     "</interval>". 
     "<startDate>" . $startDate . "</startDate>". 
     "<totalOccurrences>". $totalOccurrences . "</totalOccurrences>". 
     "<trialOccurrences>". $trialOccurrences . "</trialOccurrences>". 
     "</paymentSchedule>". 
     "<amount>". $amount ."</amount>". 
     "<trialAmount>" . $trialAmount . "</trialAmount>". 
     "<payment>". 
     "<creditCard>". 
     "<cardNumber>" . $cardNumber . "</cardNumber>". 
     "<expirationDate>" . $expirationDate . "</expirationDate>". 
     "</creditCard>". 
     "</payment>". 
     "<billTo>". 
     "<firstName>". $firstName . "</firstName>". 
     "<lastName>" . $lastName . "</lastName>". 
     "<company>" . $company . "</company>". 
     "<address>" . $address . "</address>". 
     "<city>" . $city . "</city>". 
     "<state>" . $state . "</state>". 
     "<zip>" . $zipcode . "</zip>". 
     "<country>" . $country . "</country>". 
     "</billTo>". 
     "<shipTo>". 
     "<firstName>". $firstName . "</firstName>". 
     "<lastName>" . $lastName . "</lastName>". 
     "<company>" . $company . "</company>". 
     "<address>" . $address . "</address>". 
     "<city>" . $city . "</city>". 
     "<state>" . $state . "</state>". 
     "<zip>" . $zipcode . "</zip>". 
     "<country>" . $country . "</country>". 
     "</shipTo>". 
     "</subscription>". 
     "</ARBCreateSubscriptionRequest>"; 
+0

코드가 정상적으로 보입니다. ''의 값은 여기에서 보는 것처럼 하드 코드되어 있습니까? 또는 변수에 의해 제공됩니까? –

+0

예 John, 하드 코드 된 것입니다. 구독 태그 아래의 Name 태그는 변수 – Nagamani

답변

0

마지막으로 나는 xml validator를 사용하여 해결책을 얻었고, 나는 $startdate 변수에 날짜 함수를 가지고있는 변수를 실수로 만들었고, 나는 <?php 태그를 날짜 함수에 추가하지 않았다.

<?php을 사용하여 문제가 해결되었습니다. 제안 cartalot 주셔서 감사합니다.

+1

에 의해 제공됩니다. 예, 청구서 양식과 같은 양식에서 직접 값을 가져 오는 경우 다시 말할 것입니다. XML 기능을위한 준비 및 준비가 필요합니다. cartalot

0

패스 모든 값() - 그리고 이것은 당신이하고있는 일에 적합하지 않을 수 있지만 전달하기를 원할 것입니다. 모든 도트 연결이없는 xml 문자열을 만들 수 있습니다.

당신이 php-php에서 이것을하는 경우, 큰 따옴표 안에 $ 변수를 처리하고 텍스트 값으로 출력합니다.