コード例 #1
0
    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()
コード例 #2
0
    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()
コード例 #3
0
    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 }  )