[#29272807] implemented storage of FPS_* keys in the db
parent
4deae23fd4
commit
090d36de66
|
@ -1,4 +1,5 @@
|
||||||
from regluit.payment.parameters import *
|
from regluit.payment.parameters import *
|
||||||
|
from regluit.core.models import Key
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from regluit.payment.models import Transaction, PaymentResponse
|
from regluit.payment.models import Transaction, PaymentResponse
|
||||||
|
@ -49,6 +50,11 @@ AMAZON_OPERATION_TYPE_PAY = 'PAY'
|
||||||
AMAZON_OPERATION_TYPE_REFUND = 'REFUND'
|
AMAZON_OPERATION_TYPE_REFUND = 'REFUND'
|
||||||
AMAZON_OPERATION_TYPE_CANCEL = 'CANCEL'
|
AMAZON_OPERATION_TYPE_CANCEL = 'CANCEL'
|
||||||
|
|
||||||
|
# load FPS_ACCESS_KEY and FPS_SECRET_KEY from the database
|
||||||
|
|
||||||
|
FPS_ACCESS_KEY = Key.objects.get(name="FPS_ACCESS_KEY").value
|
||||||
|
FPS_SECRET_KEY = Key.objects.get(name="FPS_SECRET_KEY").value
|
||||||
|
|
||||||
|
|
||||||
def ProcessIPN(request):
|
def ProcessIPN(request):
|
||||||
'''
|
'''
|
||||||
|
@ -81,7 +87,7 @@ def ProcessIPN(request):
|
||||||
uri = request.build_absolute_uri()
|
uri = request.build_absolute_uri()
|
||||||
parsed_url = urlparse.urlparse(uri)
|
parsed_url = urlparse.urlparse(uri)
|
||||||
|
|
||||||
connection = FPSConnection(settings.FPS_ACCESS_KEY, settings.FPS_SECRET_KEY, host=settings.AMAZON_FPS_HOST)
|
connection = FPSConnection(FPS_ACCESS_KEY, FPS_SECRET_KEY, host=settings.AMAZON_FPS_HOST)
|
||||||
|
|
||||||
# Check the validity of the IPN
|
# Check the validity of the IPN
|
||||||
resp = connection.verify_signature("%s://%s%s" %(parsed_url.scheme,
|
resp = connection.verify_signature("%s://%s%s" %(parsed_url.scheme,
|
||||||
|
@ -382,7 +388,7 @@ class Pay( AmazonRequest ):
|
||||||
self.original_return_url = return_url
|
self.original_return_url = return_url
|
||||||
return_url = settings.BASE_URL + reverse('AmazonPaymentReturn')
|
return_url = settings.BASE_URL + reverse('AmazonPaymentReturn')
|
||||||
|
|
||||||
self.connection = FPSConnection(settings.FPS_ACCESS_KEY, settings.FPS_SECRET_KEY, host=settings.AMAZON_FPS_HOST)
|
self.connection = FPSConnection(FPS_ACCESS_KEY, FPS_SECRET_KEY, host=settings.AMAZON_FPS_HOST)
|
||||||
|
|
||||||
receiver_list = []
|
receiver_list = []
|
||||||
receivers = transaction.receiver_set.all()
|
receivers = transaction.receiver_set.all()
|
||||||
|
@ -467,7 +473,7 @@ class Execute(AmazonRequest):
|
||||||
logging.debug("Amazon EXECUTE action for transaction id: %d" % transaction.id)
|
logging.debug("Amazon EXECUTE action for transaction id: %d" % transaction.id)
|
||||||
|
|
||||||
# Use the boto class top open a connection
|
# Use the boto class top open a connection
|
||||||
self.connection = FPSConnection(settings.FPS_ACCESS_KEY, settings.FPS_SECRET_KEY, host=settings.AMAZON_FPS_HOST)
|
self.connection = FPSConnection(FPS_ACCESS_KEY, FPS_SECRET_KEY, host=settings.AMAZON_FPS_HOST)
|
||||||
self.transaction = transaction
|
self.transaction = transaction
|
||||||
|
|
||||||
# BUGBUG, handle multiple receivers! For now we just send the money to ourselves
|
# BUGBUG, handle multiple receivers! For now we just send the money to ourselves
|
||||||
|
@ -557,7 +563,7 @@ class PaymentDetails(AmazonRequest):
|
||||||
logging.debug("Amazon PAYMENTDETAILS API for transaction id: %d" % transaction.id)
|
logging.debug("Amazon PAYMENTDETAILS API for transaction id: %d" % transaction.id)
|
||||||
|
|
||||||
# Use the boto class top open a connection
|
# Use the boto class top open a connection
|
||||||
self.connection = FPSConnection(settings.FPS_ACCESS_KEY, settings.FPS_SECRET_KEY, host=settings.AMAZON_FPS_HOST)
|
self.connection = FPSConnection(FPS_ACCESS_KEY, FPS_SECRET_KEY, host=settings.AMAZON_FPS_HOST)
|
||||||
self.transaction = transaction
|
self.transaction = transaction
|
||||||
|
|
||||||
if not transaction.preapproval_key:
|
if not transaction.preapproval_key:
|
||||||
|
@ -638,7 +644,7 @@ class CancelPreapproval(AmazonRequest):
|
||||||
logging.debug("Amazon CANCELPREAPPROVAL api called for transaction id: %d" % transaction.id)
|
logging.debug("Amazon CANCELPREAPPROVAL api called for transaction id: %d" % transaction.id)
|
||||||
|
|
||||||
# Use the boto class top open a connection
|
# Use the boto class top open a connection
|
||||||
self.connection = FPSConnection(settings.FPS_ACCESS_KEY, settings.FPS_SECRET_KEY, host=settings.AMAZON_FPS_HOST)
|
self.connection = FPSConnection(FPS_ACCESS_KEY, FPS_SECRET_KEY, host=settings.AMAZON_FPS_HOST)
|
||||||
self.transaction = transaction
|
self.transaction = transaction
|
||||||
|
|
||||||
params = {}
|
params = {}
|
||||||
|
@ -692,7 +698,7 @@ class RefundPayment(AmazonRequest):
|
||||||
logging.debug("Amazon REFUNDPAYMENT API called for transaction id: %d", transaction.id)
|
logging.debug("Amazon REFUNDPAYMENT API called for transaction id: %d", transaction.id)
|
||||||
|
|
||||||
# Use the boto class top open a connection
|
# Use the boto class top open a connection
|
||||||
self.connection = FPSConnection(settings.FPS_ACCESS_KEY, settings.FPS_SECRET_KEY, host=settings.AMAZON_FPS_HOST)
|
self.connection = FPSConnection(FPS_ACCESS_KEY, FPS_SECRET_KEY, host=settings.AMAZON_FPS_HOST)
|
||||||
self.transaction = transaction
|
self.transaction = transaction
|
||||||
|
|
||||||
if not transaction.preapproval_key:
|
if not transaction.preapproval_key:
|
||||||
|
@ -745,7 +751,7 @@ class PreapprovalDetails(AmazonRequest):
|
||||||
logging.debug("Amazon PREAPPROVALDETAILS API called for transaction id: %d", transaction.id)
|
logging.debug("Amazon PREAPPROVALDETAILS API called for transaction id: %d", transaction.id)
|
||||||
|
|
||||||
# Use the boto class top open a connection
|
# Use the boto class top open a connection
|
||||||
self.connection = FPSConnection(settings.FPS_ACCESS_KEY, settings.FPS_SECRET_KEY, host=settings.AMAZON_FPS_HOST)
|
self.connection = FPSConnection(FPS_ACCESS_KEY, FPS_SECRET_KEY, host=settings.AMAZON_FPS_HOST)
|
||||||
self.transaction = transaction
|
self.transaction = transaction
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -68,14 +68,6 @@ GOOGLE_BOOKS_API_KEY = ''
|
||||||
# Payment processor switch
|
# Payment processor switch
|
||||||
PAYMENT_PROCESSOR = 'amazon'
|
PAYMENT_PROCESSOR = 'amazon'
|
||||||
|
|
||||||
# Amazon credentials (for fps)
|
|
||||||
AWS_ACCESS_KEY = ''
|
|
||||||
AWS_SECRET_ACCESS_KEY = ''
|
|
||||||
|
|
||||||
# Amazon FPS Credentials
|
|
||||||
FPS_ACCESS_KEY = ''
|
|
||||||
FPS_SECRET_KEY = ''
|
|
||||||
|
|
||||||
# set -- sandbox or production Amazon FPS?
|
# set -- sandbox or production Amazon FPS?
|
||||||
AMAZON_FPS_HOST = "fps.sandbox.amazonaws.com"
|
AMAZON_FPS_HOST = "fps.sandbox.amazonaws.com"
|
||||||
#AMAZON_FPS_HOST = "fps.amazonaws.com"
|
#AMAZON_FPS_HOST = "fps.amazonaws.com"
|
||||||
|
|
|
@ -582,31 +582,6 @@ INSERT INTO `core_identifier` VALUES (1,'goog','wtPxGztYx-UC',1,1),(2,'isbn','97
|
||||||
/*!40000 ALTER TABLE `core_identifier` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `core_identifier` ENABLE KEYS */;
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
|
|
||||||
--
|
|
||||||
-- Table structure for table `core_key`
|
|
||||||
--
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `core_key`;
|
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!40101 SET character_set_client = utf8 */;
|
|
||||||
CREATE TABLE `core_key` (
|
|
||||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
||||||
`name` varchar(255) NOT NULL,
|
|
||||||
`encrypted_value` longtext,
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
UNIQUE KEY `core_key_name_uniq` (`name`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `core_key`
|
|
||||||
--
|
|
||||||
|
|
||||||
LOCK TABLES `core_key` WRITE;
|
|
||||||
/*!40000 ALTER TABLE `core_key` DISABLE KEYS */;
|
|
||||||
/*!40000 ALTER TABLE `core_key` ENABLE KEYS */;
|
|
||||||
UNLOCK TABLES;
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Table structure for table `core_premium`
|
-- Table structure for table `core_premium`
|
||||||
--
|
--
|
||||||
|
|
Loading…
Reference in New Issue