2013-04-23 2 views
0

Я использую Sudzc для анализа XML-мыла.Проблема Sudzc для синтаксического анализа строки

Я настраиваю:

amount.currency = @"BRL"; 

Это дает мне следующее сообщение об ошибке:

validation 138 Unsupported currency specified 

LogCat:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body><soap:Fault><faultcode>soap:Server</faultcode><faultstring>validation 138 Unsupported currency specified</faultstring></soap:Fault></soap:Body></soap:Envelope> 

Я знаю, что это хорошо WSDL. Итак, где я должен искать эту ошибку?

SDZPayment* service = [SDZPayment service]; 
    service.logging = YES; 
    service.username = @"**************"; 
    service.password = @"****************"; 


    SDZAmount *amount = [SDZAmount new]; 
    amount.value = (long)100; 
    amount.currency = @"BRL"; 

    SDZCard *card = [SDZCard new]; 
    card.cvc = @"412"; 
    card.number = @"21432423423"; 
    card.holderName = @"Marcus Ataide"; 
    card.expiryMonth = @"12"; 
    card.expiryYear = @"2017"; 
    card.brand = @"visa"; 
    card.issueNumber = @"10"; 
    card.startMonth = @"10"; 
    card.startYear = @"2010"; 

    SDZPaymentRequest *payment = [SDZPaymentRequest new]; 
    payment.amount = amount; 
    payment.card = card; 
    payment.merchantAccount = @"*************"; 
    payment.shopperReference = @"123456"; 


    // Returns SDZPaymentResult* 
    /* */ 
    [service authorise:self action:@selector(authoriseHandler:) paymentRequest: payment]; 

От веб-сервиса:

<xsd:complexType name="Amount"> 
<xsd:sequence> 
<xsd:element minOccurs="1" name="currency"> 
<xsd:simpleType> 
<xsd:restriction base="xsd:string"> 
<xsd:minLength value="3"/> 
<xsd:maxLength value="3"/> 
</xsd:restriction> 
</xsd:simpleType> 
</xsd:element> 
<xsd:element minOccurs="1" name="value" type="xsd:long"/> 
</xsd:sequence> 
</xsd:complexType> 

ответ

0

Проблема была с пространством имен:

Внутри, "SDZAmount.m", мне нужно изменить:

[s appendString: [Soap serialize: self.currency]]; 

к:

[s appendFormat: @"<currency xmlns=\"http://common.services.adyen.com\">%@</currency>", [Soap serialize: self.currency]]; 
Смежные вопросы