def prepVCSPayment(self, order, request): # when debugging you can use this action to return to the approved # page immediately. # self.action = '%s/@@paymentapproved' %self.context.absolute_url() # becomes the action to which the page is posted. self.action = self.settings.vcs_url # terminal id; becomes p1 in the template self.vcs_terminal_id = self.settings.vcs_terminal_id # no orderid, no processing possible. So we raise an error. # becomes p2 in the template self.tid = order.getId() if self.tid == None or len(self.tid) < 1: raise AttributeError('No orderid supplied') # becomes p3 in the template self.description = 'Siyavula EMAS %s' % order.Title() # becomes p4 in the template self.cost = order.total() self.quantity = 1 # the return url passed as m_1 in the template self.returnurl = self.context.absolute_url() self.md5key = self.settings.vcs_md5_key self.md5hash = vcs_hash(self.vcs_terminal_id + self.tid + self.description + str(self.cost) + self.returnurl + self.md5key) annotate(order, 'vcs_hash', self.md5hash)
def update(self): """ Set local variables for use in the template. """ settings = queryUtility(IRegistry).forInterface(IEmasSettings) # when debugging you can use this action to return to the approved # page immediately. # self.action = '%s/@@paymentapproved' %self.context.absolute_url() # becomes the action to which the page is posted. self.action=settings.vcs_url # terminal id; becomes p1 in the template self.vcs_terminal_id = settings.vcs_terminal_id # no orderid, no processing possible. So we raise an error. # becomes p2 in the template self.tid = self.request.get('orderid') if self.tid == None or len(self.tid) < 1: raise AttributeError('No orderid supplied') self.order = self.getOrder(self.tid) # becomes p3 in the template self.description = 'Siyavula EMAS %s' %self.order.Title() # becomes p4 in the template self.cost = self.order.total() self.quantity = 1 # the return url passed as m_1 in the template self.returnurl = self.context.absolute_url() self.md5key = settings.vcs_md5_key self.md5hash = vcs_hash(self.vcs_terminal_id + self.tid + self.description + str(self.cost) + self.returnurl + self.md5key) annotate(self.order, 'vcs_hash', self.md5hash)