2014-03-12 58 views
0

我在authorize.net中使用了ARB,我使用php和Xml來請求創建ARB中的訂閱。它在本地工作正常但我上傳了文件在服務器中顯示以下錯誤,名稱不能以''字符開頭,在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

是的約翰,它是硬編碼和訂閱標籤下的名稱標籤由變量 – Nagamani

回答

0

最後我通過使用xml驗證器得到了解決方案,我在$startdate變量中犯了一個錯誤,它包含日期函數,我沒有將<?php標記添加到日期函數中。

通過使用<?php它解決了這個問題。感謝您的建議cartalot。

+1

提供很棒!是的,你會再次說,如果你直接從賬單表單中獲取價值 - 某種修剪和準備xml功能是非常必要的。絕對測試你的表單放入像 cartalot

0

通所有通過PHP修整的值()第一像

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

然後傳遞到您的形式 此外 - 和這可能不適合你在做什麼,但想傳遞 - 你可以使xml字符串沒有所有的點連接,如

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

如果您使用php進行此操作 - php將在雙引號內處理$變量並將其輸出爲文本值。

相關問題