2014-03-12 6 views
0

Я использовал ARB в authorize.net, я использую php и Xml для запроса создания подписки в ARB.Its работает нормально в локальном, но я загрузил файлы на сервере отображается следующая ошибка:Имя не может начинаться с символа '', в запросе ARB

Сообщение об ошибке: Имя не может начинаться с символа ', шестнадцатеричного значения 0x20. Строка 1, позиция 406.

Код ошибки: E00003

Может кто-нибудь предложить, пожалуйста, как решить эту проблему, так что я должен связаться с сервером?

Ниже файл Xml я использовал для запроса,

$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

Да, Джон, это Hardcoded и тег Name под тегом подписки предоставляется переменной – Nagamani

ответ

0

Наконец-то я получил решение с помощью проверки xml, я допустил ошибку в переменной $startdate, которая содержит функцию даты, я не добавил тег <?php к функции даты.

Используя <?php, он решил проблему. Спасибо за предложение cartalot.

+1

отлично! да скажет снова, если вы принимаете значения прямо из формы, например, биллинговой формы - очень нужна настройка и подготовка к функции xml. определенно протестируйте вашу форму, помещая символы, такие как cartalot

0

проходят все значения через PHP TRIM() первый как

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

затем передают в форму Кроме того - и это может быть неприемлемо для того, что вы делаете, но хотите передать его - вы можете сделать строку xml без контурации точек, например

"<billTo> 
    <firstName>$firstName</firstName> 
    <lastName>$lastName</lastName>" ; 

Если вы делаете это с помощью php-php, то обрабатываете переменные $ внутри двойной кавычки и выводятся как текстовые значения.

 Смежные вопросы

  • Нет связанных вопросов^_^