From 65a7df298d2a4e29d9c6239056688f9d8b44124b Mon Sep 17 00:00:00 2001 From: Jason Date: Tue, 15 May 2012 16:52:05 -0400 Subject: [PATCH] Adding secure IPN url for amazon payments --- payment/amazon.py | 16 +++++++++++----- settings/dev.py | 2 ++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/payment/amazon.py b/payment/amazon.py index 12f84179..b0627d66 100644 --- a/payment/amazon.py +++ b/payment/amazon.py @@ -57,10 +57,16 @@ try: FPS_SECRET_KEY = Key.objects.get(name="FPS_SECRET_KEY").value logger.info('Successful loading of FPS_*_KEYs') except Exception, e: - FPS_ACCESS_KEY = '' - FPS_SECRET_KEY = '' + FPS_ACCESS_KEY = 'AKIAJMSHBCEKIDAHKIUQ' + FPS_SECRET_KEY = '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' logger.info('EXCEPTION: unsuccessful loading of FPS_*_KEYs: {0}'.format(e)) +def get_ipn_url(): + + if settings.IPN_SECURE_URL: + return settings.BASE_URL_SECURE + reverse('HandleIPN', args=["amazon"]) + else: + return settings.BASE_URL + reverse('HandleIPN', args=["amazon"]) def ProcessIPN(request): ''' @@ -483,7 +489,7 @@ class Execute(AmazonRequest): self.transaction = transaction # BUGBUG, handle multiple receivers! For now we just send the money to ourselves - global_params = {"OverrideIPNURL": settings.BASE_URL + reverse('HandleIPN', args=["amazon"])} + global_params = {"OverrideIPNURL": get_ipn_url()} self.raw_response = self.connection.pay(transaction.amount, transaction.pay_key, recipientTokenId=None, @@ -654,7 +660,7 @@ class CancelPreapproval(AmazonRequest): self.connection = FPSConnection(FPS_ACCESS_KEY, FPS_SECRET_KEY, host=settings.AMAZON_FPS_HOST) self.transaction = transaction - global_params = {"OverrideIPNURL": settings.BASE_URL + reverse('HandleIPN', args=["amazon"])} + global_params = {"OverrideIPNURL": get_ipn_url()} params = global_params params['TokenId'] = transaction.pay_key params['ReasonText'] = "Cancel Reason" @@ -718,7 +724,7 @@ class RefundPayment(AmazonRequest): # We need to reference the transaction ID here, this is stored in the preapproval_key as this # field is not used for amazon # - global_params = {"OverrideIPNURL": settings.BASE_URL + reverse('HandleIPN', args=["amazon"])} + global_params = {"OverrideIPNURL": get_ipn_url()} self.raw_response = self.connection.refund(transaction.secret, transaction.preapproval_key, extra_params=global_params) self.response = self.raw_response[0] diff --git a/settings/dev.py b/settings/dev.py index 20921ed5..c1056003 100644 --- a/settings/dev.py +++ b/settings/dev.py @@ -94,6 +94,8 @@ PAYPAL_NONPROFIT_PARTNER_EMAIL = "nppart_1318957063_per@gluejar.com" PAYPAL_TEST_RH_EMAIL = "rh1_1317336251_biz@gluejar.com" BASE_URL = 'http://0.0.0.0' +BASE_URL_SECURE = 'https://0.0.0.0' +IPN_SECURE_URL = True # use database as queuing service in development BROKER_TRANSPORT = "djkombu.transport.DatabaseTransport"