Пример #1
0
 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
Пример #2
0
 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
Пример #3
0
 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
Пример #4
0
 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
Пример #5
0
 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
Пример #6
0
 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
Пример #7
0
 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
Пример #8
0
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
Пример #9
0
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
Пример #10
0
 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