def setSender(self, name, email = None, areaCode = None, number = None): param = name if isinstance(param, (list, tuple)): self.sender = PagSeguroSender(param) else: sender = PagSeguroSender() sender.setName(param) sender.setEmail(email) sender.setPhone(PagSeguroPhone(areaCode, number)) self.sender = sender
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
class PagSeguroPaymentRequest: sender = None currency = None items = None itemsCount = 0 redirectURL = None extraAmount = None reference = None shipping = None maxAge = None maxUses = None def getSender(self): return self.sender def setSender(self, name, email = None, areaCode = None, number = None): param = name if isinstance(param, (list, tuple)): self.sender = PagSeguroSender(param) else: sender = PagSeguroSender() sender.setName(param) sender.setEmail(email) sender.setPhone(PagSeguroPhone(areaCode, number)) self.sender = sender def setSenderName(self, senderName): if self.sender == None: self.sender = PagSeguroSender() self.sender.setName(senderName) def setSenderEmail(self, senderEmail): if self.sender == None: self.sender = PagSeguroSender() self.sender.setEmail(senderEmail) def setSenderPhone(self, areaCode, number = None): param = areaCode if self.sender == None: self.sender = PagSeguroSender() if isinstance(param, PagSeguroPhone): self.sender.setPhone(param) else: self.sender.setPhone(PagSeguroPhone(param, number)) def getCurrency(self): return self.currency def setCurrency(self, currency): self.currency = currency def getItems(self): return self.items def setItems(self, items): if isinstance(items, (list, tuple)): i = {} for x, v in items: if isinstance(v, PagSeguroItem): i[x] = v elif isinstance(v, (list, tuple)): i[x] = PagSeguroItem(v) self.items = i def addItem(self, _id, description = None, quantity = None, amount = None, weight = None, shippingCost = None): param = _id if self.items == None: self.items = {} if isinstance(param, (list, tuple)): self.items[self.itemsCount] = PagSeguroItem(param) self.itemsCount = self.itemsCount + 1 elif isinstance(param, PagSeguroItem): self.items[self.itemsCount] = param self.itemsCount = self.itemsCount + 1 else: item = PagSeguroItem() item.setId(param) item.setDescription(description) item.setQuantity(quantity) item.setAmount(amount) item.setWeight(weight) item.setShippingCost(shippingCost) self.items[self.itemsCount] = item self.itemsCount = self.itemsCount + 1 def getRedirectURL(self): return self.redirectURL def setRedirectURL(self, redirectURL): self.redirectURL = redirectURL def getExtraAmount(self): return self.extraAmount def setExtraAmount(self, extraAmount): self.extraAmount = extraAmount def getReference(self): return self.reference def setReference(self, reference): self.reference = reference def getShipping(self): return self.shipping def setShipping(self, address, _type=None): param = address if isinstance(param,PagSeguroShipping): self.shipping = param else: shipping = PagSeguroShipping() if isinstance(param, (list, tuple)): shipping.setAddress(PagSeguroAddress(param)) elif isinstance(param, PagSeguroAddress): shipping.setAddress(param) if type: if isinstance(_type, PagSeguroShippingType): shipping.setType(_type) else: shipping.setType(PagSeguroShippingType(_type)) self.shipping = shipping def setShippingAddress(self, postalCode = None, street = None, number = None, complement = None, district = None, city = None, state = None, country = None): param = postalCode if self.shipping == None: self.shipping = PagSeguroShipping() if isinstance(param, (list, tuple)): self.shipping.setAddress(PagSeguroAddress(param)) elif isinstance(param,PagSeguroAddress): self.shipping.setAddress(param) else: address = PagSeguroAddress() address.setPostalCode(postalCode) address.setStreet(street) address.setNumber(number) address.setComplement(complement) address.setDistrict(district) address.setCity(city) address.setState(state) address.setCountry(country) self.shipping.setAddress(address) def setShippingType(self, _type): param = _type if self.shipping == None: self.shipping = PagSeguroShipping() if isinstance(param, PagSeguroShippingType): self.shipping.setType(param) else: self.shipping.setType(PagSeguroShippingType(param)) def getMaxAge(self): return self.maxAge def setMaxAge(self, maxAge): self.maxAge = maxAge def getMaxUses(self): return self.maxUses def setMaxUses(self, maxUses): self.maxUses = maxUses def register(self, credentials): #TODO VERIFY INSTANCE CREDENTIALS return PagSeguroPaymentService.createCheckoutRequest(credentials, self) def __unicode__(self): email = None if self.sender and self.sender.getEmail(): email = self.sender.getEmail() return "PagSeguroPaymentRequest(Reference=%s, SenderEmail=%s)" % (self.reference, email)