def is_paid(self): 'Checks whether a payment has been made successfully.' request_dict = dict( a = 'check', partnerid = settings.MOLLIE_PARTNER_ID, transaction_id = self.transaction_id ) parsed_xml = _get_mollie_xml(request_dict) order = parsed_xml.find('order') if order is None: logger.error("No order found in xml for transaction id %s.", self.transaction_id) # Most likely the reporturl or returnurl points to # localhost, which is an error. raise ValueError("No order found.") consumer = order.find('consumer') if consumer: self.consumer_account = consumer.findtext('consumerAccount') self.consumer_city = consumer.findtext('consumerCity') self.consumer_name = consumer.findtext('consumerName') if order.findtext('payed') == 'true': logger.info("Transaction %s is paid.", self.transaction_id) return True message = order.findtext('message') logger.error("Transaction id %s not paid. Message: %s", self.transaction_id, message) status = order.findtext('status') if status: logger.error("Transaction id %s not paid. Status: %s", self.transaction_id, status) return False
def get_order_url(self): "Sets up a payment with Mollie.nl and returns an order URL." if settings.MOLLIE_REVERSE_URLS: reporturl = settings.MOLLIE_IMPLEMENTING_SITE_URL + reverse(settings.MOLLIE_REPORT_URL) returnurl = settings.MOLLIE_IMPLEMENTING_SITE_URL + reverse(settings.MOLLIE_RETURN_URL) else: reporturl = settings.MOLLIE_REPORT_URL returnurl = settings.MOLLIE_RETURN_URL request_dict = dict( a="fetch", amount=int(self.amount * 100), bank_id=self.bank_id, description=self.description, partnerid=settings.MOLLIE_PARTNER_ID, reporturl=reporturl, returnurl=returnurl, ) if settings.MOLLIE_PROFILE_KEY: request_dict.update(dict(profile_key=settings.MOLLIE_PROFILE_KEY)) parsed_xml = _get_mollie_xml(request_dict) order = parsed_xml.find("order") order_url = order.findtext("URL") self.transaction_id = order.findtext("transaction_id") self.save() return order_url
def get_order_url(self): 'Sets up a payment with Mollie.nl and returns an order URL.' if settings.MOLLIE_REVERSE_URLS: reporturl = settings.MOLLIE_IMPLEMENTING_SITE_URL+reverse(settings.MOLLIE_REPORT_URL) returnurl = settings.MOLLIE_IMPLEMENTING_SITE_URL+reverse(settings.MOLLIE_RETURN_URL) else: reporturl = settings.MOLLIE_REPORT_URL returnurl = settings.MOLLIE_RETURN_URL request_dict = dict( a = 'fetch', amount = int(self.amount * 100), bank_id = self.bank_id, description = self.description, partnerid = settings.MOLLIE_PARTNER_ID, reporturl = reporturl, returnurl = returnurl ) if settings.MOLLIE_PROFILE_KEY: request_dict.update(dict( profile_key=settings.MOLLIE_PROFILE_KEY )) parsed_xml = _get_mollie_xml(request_dict) order = parsed_xml.find('order') order_url = order.findtext('URL') self.transaction_id = order.findtext('transaction_id') self.save() return order_url
def is_paid(self): "Checks whether a payment has been made successfully." request_dict = dict(a="check", partnerid=settings.MOLLIE_PARTNER_ID, transaction_id=self.transaction_id) parsed_xml = _get_mollie_xml(request_dict) order = parsed_xml.find("order") consumer = order.find("consumer") if consumer: self.consumer_account = consumer.findtext("consumerAccount") self.consumer_city = consumer.findtext("consumerCity") self.consumer_name = consumer.findtext("consumerName") if order.findtext("payed") == "true": return True return False
def is_paid(self): 'Checks whether a payment has been made successfully.' request_dict = dict( a = 'check', partnerid = settings.MOLLIE_PARTNER_ID, transaction_id = self.transaction_id ) parsed_xml = _get_mollie_xml(request_dict) order = parsed_xml.find('order') consumer = order.find('consumer') if consumer: self.consumer_account = consumer.findtext('consumerAccount') self.consumer_city = consumer.findtext('consumerCity') self.consumer_name = consumer.findtext('consumerName') if order.findtext('payed') == 'true': return True return False
def get_order_url(self): 'Sets up a payment with Mollie.nl and returns an order URL.' request_dict = dict( a = 'fetch', amount = int(self.amount * 100), bank_id = self.bank_id, description = self.description, partnerid = settings.MOLLIE_PARTNER_ID, reporturl = settings.MOLLIE_REPORT_URL, returnurl = settings.MOLLIE_RETURN_URL ) parsed_xml = _get_mollie_xml(request_dict) order = parsed_xml.find('order') order_url = order.findtext('URL') self.transaction_id = order.findtext('transaction_id') self.save() return order_url
def query_mollie(request_dict, mode): valid_modes = ('check', 'fetch') if mode not in valid_modes: raise ValueError("Invalid mode. Valid modes are '%s' and '%s'." % valid_modes) request_dict['a'] = mode parsed_xml = _get_mollie_xml(request_dict) order = parsed_xml.find('order') response_dict = dict() response_dict['transaction_id'] = order.findtext('transaction_id') if mode == 'fetch': response_dict['order_url'] = order.findtext('URL') elif mode == 'check': response_dict['paid'] = order.findtext('payed') # sic! consumer = order.find('consumer') response_dict['consumerAcount'] = consumer.findtext('consumerAccount') response_dict['consumerCity'] = consumer.findtext('consumerCity') response_dict['consumerName'] = consumer.findtext('consumerName') return response_dict
def get_order_url(self, reporturl=None, returnurl=None): 'Sets up a payment with Mollie.nl and returns an order URL.' if settings.MOLLIE_REVERSE_URLS: if reporturl is None: reporturl = settings.MOLLIE_SITE_FULL_URL + reverse( settings.MOLLIE_REPORT_URL) if returnurl is None: returnurl = settings.MOLLIE_SITE_FULL_URL + reverse( settings.MOLLIE_RETURN_URL) else: if reporturl is None: reporturl = settings.MOLLIE_REPORT_URL if returnurl is None: returnurl = settings.MOLLIE_RETURN_URL request_dict = dict( a = 'fetch', amount = int(self.amount * 100), bank_id = self.bank_id, description = self.description, partnerid = settings.MOLLIE_PARTNER_ID, reporturl = reporturl, returnurl = returnurl ) if settings.MOLLIE_PROFILE_KEY: request_dict.update(dict( profile_key=settings.MOLLIE_PROFILE_KEY )) parsed_xml = _get_mollie_xml(request_dict) order = parsed_xml.find('order') if order is None: logger.error("No order found in xml.") # Most likely the reporturl points to localhost, which is # an error. error = parsed_xml.findtext('error') or 'unknown' if 'localhost' in reporturl or '127.0.0.1' in reporturl: raise ValueError("reporturl must not point to localhost. " "It must be reachable by mollie.nl.") raise ValueError("No order found. Error: %s" % (error,)) order_url = order.findtext('URL') self.transaction_id = order.findtext('transaction_id') self.save() return order_url