def readSearchResult(cls, xml): parser = PagSeguroXmlParser(xml, 'transactionSearchResult') data = parser.getResult('transactionSearchResult') searchResult = PagSeguroTransactionSearchResult() if 'totalPages' in data: searchResult.setTotalPages(data['totalPages']) if 'date' in data: searchResult.setDate(data['date']) if 'resultsinThisPage' in data: searchResult.setResultsInThisPage(data['resultsinThisPage']) if 'currentPage' in data: searchResult.setCurrentPage(data['currentPage']) if 'transactions' in data and isinstance(data['transactions'], (list, tuple)): transactions = {} for i, v in data['transactions']: if i == 'transaction': transactions.append(cls.parseTransactionSummary(v)) searchResult.setTransactions(transactions) return searchResult
def readSuccessXml(cls, str_xml): parser = PagSeguroXmlParser(str_xml, 'checkout') data = parser.getResult('checkout') paymentParserData = PagSeguroPaymentParserData() paymentParserData.setCode(data['code']) paymentParserData.setRegistrationDate(data['date']) return paymentParserData
def readErrors(cls, str_xml): parser = PagSeguroXmlParser(str_xml,'errors') data = parser.getResult('errors') errors = {} if 'error' in data and isinstance(data['error'], (list,tuple)): if 'code' in data['error'] and 'message' in data['error']: errors.append(PagSeguroError(data['error']['code'], data['error']['message'])) else: for v in data['error']: if 'code' in v and 'message' in v: errors.append(PagSeguroError(v['code'], v['message'])) return errors
def readTransaction(cls, xml): parser = PagSeguroXmlParser(xml) data = parser.getResult('transaction') transaction = PagSeguroTransaction() if 'lastEventDate' in data: transaction.setLastEventDate(data['lastEventDate']) if 'date' in data: transaction.setDate(data['date']) if 'code' in data: transaction.setCode(data['code']) if 'reference' in data: transaction.setReference(data['reference']) if 'type' in data: transaction.setType(data['type']) if 'status' in data: transaction.setStatus(data['status']) if 'paymentMethod' in data: paymentMethod = PagSeguroPaymentMethod() if 'type' in data['paymentMethod']: paymentMethod.setType(data['paymentMethod']['type']) if 'code' in data['paymentMethod']: paymentMethod.setCode(data['paymentMethod']['code']) transaction.setPaymentMethod(paymentMethod) if 'grossAmount' in data: transaction.setGrossAmount(data['grossAmount']) if 'discountAmount' in data: transaction.setDiscountAmount(data['discountAmount']) if 'feeAmount' in data: transaction.setFeeAmount(data['feeAmount']) if 'netAmount' in data: transaction.setNetAmount(data['netAmount']) if 'extraAmount' in data: transaction.setExtraAmount(data['extraAmount']) if 'installmentCount' in data: transaction.setInstallmentCount(data['installmentCount']) if data['items']['item'] and isinstance(data['items']['item'], (list,tuple)): items = {} i = 0 for v in data['items']['item']: item = cls.parseTransactionItem(v) items[i] = item i = i + 1 transaction.setItems(items) if 'sender' in data: sender = PagSeguroSender() if 'name' in data['sender']: sender.setName(data['sender']['name']) if 'email' in data['sender']: sender.setEmail(data['sender']['email']) if 'phone' in data['sender']: phone = PagSeguroPhone() if 'areaCode' in data['sender']['phone']: phone.setAreaCode(data['sender']['phone']['areaCode']) if 'number' in data['sender']['phone']: phone.setNumber(data['sender']['phone']['number']) sender.setPhone(phone) transaction.setSender(sender) if data['shipping'] and isinstance(data['shipping'], (list, tuple)): shipping = PagSeguroShipping() if 'type' in data['shipping']: shipping.setType(data['shipping']['type']) if 'cost' in data['shipping']: shipping.setCost(data['shipping']['cost']) if data['shipping']['address'] and isinstance(data['shipping']['address'],(list,tuple)): address = PagSeguroAddress() if 'street' in data['shipping']['address']: address.setStreet(data['shipping']['address']['street']) if 'number' in data['shipping']['address']: address.setNumber(data['shipping']['address']['number']) if 'complement' in data['shipping']['address']: address.setComplement(data['shipping']['address']['complement']) if 'city' in data['shipping']['address']: address.setCity(data['shipping']['address']['city']) if 'state' in data['shipping']['address']: address.setState(data['shipping']['address']['state']) if 'district' in data['shipping']['address']: address.setDistrict(data['shipping']['address']['district']) if 'postalCode' in data['shipping']['address']: address.setPostalCode(data['shipping']['address']['postalCode']) if 'country' in data['shipping']['address']: address.setCountry(data['shipping']['address']['country']) shipping.setAddress(address) transaction.setShipping(shipping) return transaction