def post(self): logger = sms_api_logger.GeneralLogger() checkout_id = self.argument('checkout_id') logger.info('start :: CheckoutHookFailedHandler :: checkout_id =', checkout_id) print checkout_id #update details on paymaya_checkout to failure params = { 'receipt_number' : response_body['receiptNumber'] or "", 'transaction_reference_number' : response_body['transactionReferenceNumber'] or "", 'status' : response_body['status'], 'payment_status' : response_body['paymentStatus'] } paymaya_main.update_paymaya_checkout_details( checkout_id, params) paymaya_main.on_payment_webhook_failed( checkout_id ) logger.info('end :: CheckoutHookFailedHandler') self.finish()
def post(self): logger = sms_api_logger.GeneralLogger() data = json.loads(self.request.body) # logger.info('start :: CheckoutHookSuccessHandler :: request_body =' % data) print '==============' print type(data) print '==============' params = { 'receipt_number' : data['receiptNumber'] or "", 'transaction_reference_number' : data['transactionReferenceNumber'] or "", 'status' : data['status'] or "", 'payment_status' : data['paymentStatus'] or "" } #get checkout_id in paymaya_checkout checkout_id = None checkout_id = paymaya_main.get_checkout_id_by_paymaya_checkout(data['id']); _checkout_id = checkout_id['checkout_id'] params.update({'checkout_id': _checkout_id}) print _checkout_id #update paymaya_checkout to success paymaya_main.update_paymaya_checkout_details(_checkout_id, params) if data['status'] == "COMPLETED" and data['paymentStatus'] == "PAYMENT_SUCCESS" : print "update purchase history" #get account_id in purchase_history account_id = None account_id = paymaya_main.get_account_id_by_checkout(_checkout_id) params.update({'id': account_id}) print account_id #update purchase history to success paymaya_main.on_payment_webhook_success(_checkout_id, account_id) # logger.info('end :: CheckoutHookSuccessHandler') print "end of webhooks success" self.write(json.dumps(params)) self.finish()
def get(self): logger = sms_api_logger.GeneralLogger() checkout_id = self.get_argument('checkout_id') #check if transaction is already successfull then redirect to dashboard if paymaya_main.is_already_successful( checkout_id ) : self.redirect("/dashboard"); paymaya_checkout_details = paymaya_main.get_payamaya_checkout_details( checkout_id ) #call Paymaya checkout information if paymaya_checkout_details['paymaya_checkout_id']: try : paymaya_checkout_url = paymaya_main.get_paymaya_checkout_url() + "/" + paymaya_checkout_details['paymaya_checkout_id'] #build headers paymaya_request_headers = paymaya_main.get_request_headers('secret_key') # #build params request = Request(paymaya_checkout_url, headers=paymaya_request_headers) response_body = loads(urlopen(request).read()) #update checkout details update_params = { 'receipt_number' : response_body['receiptNumber'] or "", 'transaction_reference_number' : response_body['transactionReferenceNumber'] or "", 'status' : response_body['status'], 'payment_status' : response_body['paymentStatus'] } paymaya_main.update_paymaya_checkout_details( checkout_id, update_params ) if response_body['status'] == "COMPLETED" and response_body['paymentStatus'] == "PAYMENT_SUCCESS" : paymaya_main.on_payment_success( checkout_id, self.get_current_user().account_id ) self.redirect("/dashboard") except Exception, e: logger.error( 'unable to get paymaya express checkout. try again: %s' % e, {'checkout_id': checkout_id } )