def queryPamentDetails(post_params): """ Get detailed order status """ url = pesapal.queryPaymentDetails(post_params) response = urllib2.urlopen(url) return response.read()
def check_status(self): data = { 'pesapal_merchant_reference': self.ref, 'pesapal_transaction_tracking_id': self.transaction_tracking_id } url = pesapal.queryPaymentDetails(data) ctx = ndb.get_context() res = ctx.urlfetch(url).get_result() data = res.content if 'pesapal_response_data=' not in data: return print 'checking payment status' pesapal_transaction_tracking_id,\ payment_method,\ payment_status,\ pesapal_merchant_reference = data\ .split('pesapal_response_data=')[1]\ .split(',') print data self.method = payment_method self.set_status(payment_status.lower()) self.put() if self.get_status_string() != 'pending': return # mark overdue if payment status check timed out timeout = self.MAX_STATUS_CHECKS*self.DEFER_STATUS_CHECK_BY_MINUTES payment_overdue = timedelta(minutes=timeout) <= (datetime.now() - self.date_created) if payment_overdue: self.set_status('overdue') self.put() else: deferred.defer( self.check_status, _countdown=self.DEFER_STATUS_CHECK_BY_MINUTES )
def check_status(self): data = { 'pesapal_merchant_reference': self.ref, 'pesapal_transaction_tracking_id': self.transaction_tracking_id } url = pesapal.queryPaymentDetails(data) ctx = ndb.get_context() res = ctx.urlfetch(url).get_result() data = res.content if 'pesapal_response_data=' not in data: return print 'checking payment status' pesapal_transaction_tracking_id,\ payment_method,\ payment_status,\ pesapal_merchant_reference = data\ .split('pesapal_response_data=')[1]\ .split(',') print data self.method = payment_method self.set_status(payment_status.lower()) self.put() if self.get_status_string() != 'pending': return # mark overdue if payment status check timed out timeout = self.MAX_STATUS_CHECKS * self.DEFER_STATUS_CHECK_BY_MINUTES payment_overdue = timedelta(minutes=timeout) <= (datetime.now() - self.date_created) if payment_overdue: self.set_status('overdue') self.put() else: deferred.defer(self.check_status, _countdown=self.DEFER_STATUS_CHECK_BY_MINUTES)