def verify(transaction, amount, currency): """ Verify a transaction against Boku. """ def error(msg): msg = 'transaction {0}: {1}'.format(transaction.pk, msg) log.error(msg) raise VerificationError(msg) try: seller_boku = transaction.seller_product.seller.boku except ObjectDoesNotExist: error('did not have a seller_boku row') if not seller_boku.merchant_id: error('did not have a merchant id') client = get_client(seller_boku.merchant_id, settings.BOKU_SECRET_KEY) res = client.check_transaction(transaction.uid_support) try: real = fix_price(res['amount'], currency) except (KeyError, AssertionError): error('not a valid price {0} or currency {1}' .format(res['amount'], currency)) if real != amount: error('did not verify: {0} != {1}'.format(real, amount)) log.info('transaction: {0} verified successfully'.format(transaction.pk))
def verify(transaction, amount, currency): """ Verify a transaction against Boku. """ def error(msg): msg = 'transaction {0}: {1}'.format(transaction, msg) log.error(msg) raise VerificationError(msg) client = get_client(settings.BOKU_MERCHANT_ID, settings.BOKU_SECRET_KEY) res = client.check_transaction(transaction) try: real = fix_price(res['amount'], currency) except (KeyError, AssertionError): error('not a valid price {0} or currency {1}' .format(res['amount'], currency)) if real != amount: error('did not verify: {0} != {1}'.format(real, amount)) log.info('transaction: {0} verified successfully'.format(transaction))
def verify(transaction, amount, currency): """ Verify a transaction against Boku. """ def error(msg): msg = 'transaction {0}: {1}'.format(transaction, msg) log.error(msg) raise VerificationError(msg) client = get_client(settings.BOKU_MERCHANT_ID, settings.BOKU_SECRET_KEY) res = client.check_transaction(transaction) try: real = fix_price(res['amount'], currency) except (KeyError, AssertionError): error('not a valid price {0} or currency {1}'.format( res['amount'], currency)) if real != amount: error('did not verify: {0} != {1}'.format(real, amount)) log.info('transaction: {0} verified successfully'.format(transaction))
def boku_client(self): return get_client( self.cleaned_data['seller_uuid'].boku.merchant_id, settings.BOKU_SECRET_KEY )
def test_real(self): with self.settings(BOKU_PROXY='', BOKU_MOCK=False): assert isinstance(get_client('', ''), BokuClient)
def test_proxy(self): with self.settings(BOKU_PROXY='blah', BOKU_MOCK=False): assert isinstance(get_client('', ''), ProxyClient)
def test_mock(self): assert isinstance(get_client('', ''), MockClient)
def test_nope(self): with self.settings(BOKU_MOCK=False, BOKU_PROXY='', BOKU_SECRET_KEY=''): get_client('', '')
def test_real(self): with self.settings(BOKU_MOCK=False, BOKU_PROXY='', BOKU_SECRET_KEY='f'): assert isinstance(get_client('', ''), BokuClient)
def test_proxy(self): with self.settings(BOKU_MOCK=False, BOKU_PROXY='blah'): assert isinstance(get_client('', ''), ProxyClient)