def test_token_charge(self): token = self.token_service.get_token(TestCreditCard.valid_visa) charge_service = HpsCreditService(TestServicesConfig.valid_services_config) charge = charge_service.charge(4, 'USD', token.token_value, TestCardHolder.valid_card_holder) self.assertIsNotNone(charge) self.assertEqual('00', charge.response_code)
def charge_token(token, card_holder): config = HpsServicesConfig() config.secret_api_key = 'skapi_cert_MYl2AQAowiQAbLp5JesGKh7QFkcizOP2jcX9BrEMqQ' config.version_number = '0000' config.developer_id = '000000' charge_service = HpsCreditService(config) response = charge_service.charge(15.15, 'usd', token, card_holder) return response
def test_swipe_token(self): swipe_data = '.11%B4012001000000016^VI TEST CREDIT^251210100000000000000000?|mc7vPHGGYh79DuD2Ys0ELhubZcP7dIsNaxQlRF243dIX5kfXEnQKaciND|+++++++JnvkN4mBa11;4012001000000016=25121010000000000000?|kON4LjKZ+tcDZcIef/W2H7oRDw|+++++++JnvkN4mBa00||/wECAQECAoFGAgEH3wEeShV78RZwb3NAc2VjdXJlZXhjaGFuZ2UubmV0TBtEt4SQvyC03zgmcS/4rnZdMpF+4mJT6EYuyDKC+WJAMG4+cSiWOGHtqwaK6edyzqosTPLavpdRat7z2dVX/SM3//TXLGGrSIayLW6Zmatbw4MT0KtBuyYaKX74E4v2L2PhItHv7m6rm2xGu2yTPmCvm9yFTouljvhF3Klx8rUAn0o0zCVAE9sl/iix+qqnTLEvgd/XXpaiYwyQoKSkkZGVX7QP' token = self.token_service.get_swipe_token(swipe_data) self.assertIsNotNone(token) charge_service = HpsCreditService(TestServicesConfig.valid_services_config) charge = charge_service.charge(3, 'USD', token.token_value, TestCardHolder.valid_card_holder) self.assertIsNotNone(charge) self.assertEqual('00', charge.response_code)
def test_encrypted_card_token(self): track = '4012007060016=2512101hX3JZdqcwEOaoUry' ktb = '/wECAQEEAoFGAgEH3ggDTDT6jRZwb3NAc2VjdXJlZXhjaGFuZ2UubmV0MCtomwyCdnN+qr1I/SvhXbgOurdPKxkAyrmBQkzS/0UB6HWpdN1nc4IXcgB7tuVAs4fRjIlYOTIWNjf10bwciwD3m1JNoDMtvoXggaN7dLI7uuA+jYzt0gAmzgB3QqUFY0k7awOm923RJhnVaWUBJv9jL3+gvFNzZ+CiYbJH3BoArnCvWJbn/ohfnlJ6bA+GPC2fJlQkizQXbrRoF+pbcezCaY9W' token = self.token_service.get_track_token(track, '02', ktb) self.assertIsNotNone(token) charge_service = HpsCreditService(TestServicesConfig.valid_services_config) charge = charge_service.charge(2, 'USD', token.token_value, TestCardHolder.valid_card_holder) self.assertIsNotNone(charge) self.assertEqual('00', charge.response_code)
def charge_token(token, card_holder): config = HpsServicesConfig() config.secret_api_key = 'skapi_cert_MYl2AQAowiQAbLp5JesGKh7QFkcizOP2jcX9BrEMqQ' config.version_number = '0000' config.developer_id = '000000' charge_service = HpsCreditService(config) response = charge_service.charge( 15.15, 'usd', token, card_holder) return response
class Charge: _config = HpsServicesConfig() _config.secret_api_key = 'skapi_cert_MYl2AQAowiQAbLp5JesGKh7QFkcizOP2jcX9BrEMqQ' _config.version_number = '0000' _config.developer_id = '000000' _charge_service = HpsCreditService(_config) def POST(self): request = web.input() try: email = request['Email'] address = HpsAddress() address.address = request['Address'] address.city = request['City'] address.state = request['State'] address.zip = re.sub('[^0-9]', '', request['Zip']) address.country = 'United States' card_holder = HpsCardHolder() card_holder.first_name = request['FirstName'] card_holder.last_name = request['LastName'] card_holder.address = address card_holder.phone = re.sub('[^0-9]', '', request['PhoneNumber']) su_token = request['token_value'] response = self.charge_token(su_token, card_holder) except KeyError: traceback.print_exc() raise web.seeother('/') except (HpsCreditException, HpsGatewayException): traceback.print_exc() raise web.seeother('/') else: body = '<h1>Success!</h1><p>Thank you, %s, for your order of $15.15.</p>' % card_holder.first_name print 'Transaction Id: %s' % response.transaction_id self.send_email(email, '*****@*****.**', 'Successful Charge!', body) raise web.seeother('/') def charge_token(self, token, card_holder): response = self._charge_service.charge( 15.15, 'usd', token, card_holder) return response def send_email(self, to, from_email, subject, body): """ Make sure to set the web.config.smtp_server option to send mail """ message = '<html><body>%s</body?</html>' % body headers = ({ 'From': from_email, 'Reply-To': from_email, 'MIME-Version': '1.0', 'Content-type': 'text/html; charset=ISO-8859-1' }) web.sendmail(from_email, to, subject, message, headers=headers)
class GeneralTests(unittest.TestCase): charge_service = HpsCreditService(enable_logging=True) def test_charge_ampersand_in_customer_id(self): self.charge_service._config = TestServicesConfig.valid_services_config details = HpsTransactionDetails() details.customer_id = '&something' try: response = self.charge_service.charge('5', 'usd', TestCreditCard.valid_visa, None, False, None, False, details) self.assertIsNotNone(response) self.assertEqual('00', response.response_code) except HpsGatewayException, e: self.fail('Gateway threw an error')
class DiscoverTests(unittest.TestCase): charge_service = HpsCreditService(TestServicesConfig.valid_services_config) def test_discover_charge(self): response = self._charge_valid_discover(50) self.assertEqual(response.response_code, '00') def test_discover_avs_response_A(self): response = self._charge_valid_discover(91.01) self.assertEqual(response.avs_result_code, 'A') def test_discover_avs_response_N(self): response = self._charge_valid_discover(91.02) self.assertEqual(response.avs_result_code, 'N') def test_discover_avs_response_R(self): response = self._charge_valid_discover(91.03) self.assertEqual(response.avs_result_code, 'R') def test_discover_avs_response_U(self): response = self._charge_valid_discover(91.05) self.assertEqual(response.avs_result_code, 'U') def test_discover_avs_response_Y(self): response = self._charge_valid_discover(91.06) self.assertEqual(response.avs_result_code, 'Y') def test_discover_avs_response_Z(self): response = self._charge_valid_discover(91.07) self.assertEqual(response.avs_result_code, 'Z') def test_discover_response_refer_card_issuer(self): try: response = self._charge_valid_discover(10.34) except HpsCreditException, e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail('No exception was thrown.')
class AmexTests(unittest.TestCase): charge_service = HpsCreditService( TestServicesConfig.valid_services_config) def test_amex_charge(self): response = self._charge_valid_amex(50) self.assertEqual(response.response_code, "00") # AVS Tests def test_amex_avs_response_a(self): response = self._charge_valid_amex(90.01) self.assertEqual(response.avs_result_code, "A") def test_amex_avs_response_n(self): response = self._charge_valid_amex(90.02) self.assertEqual(response.avs_result_code, "N") def test_amex_avs_response_r(self): response = self._charge_valid_amex(90.03) self.assertEqual(response.avs_result_code, "R") def test_amex_avs_response_s(self): response = self._charge_valid_amex(90.04) self.assertEqual(response.avs_result_code, "S") def test_amex_avs_response_u(self): response = self._charge_valid_amex(90.05) self.assertEqual(response.avs_result_code, "U") def test_amex_avs_response_w(self): response = self._charge_valid_amex(90.06) self.assertEqual(response.avs_result_code, "W") def test_amex_avs_response_x(self): response = self._charge_valid_amex(90.07) self.assertEqual(response.avs_result_code, "X") def test_amex_avs_response_y(self): response = self._charge_valid_amex(90.08) self.assertEqual(response.avs_result_code, "Y") def test_amex_avs_response_z(self): response = self._charge_valid_amex(90.09) self.assertEqual(response.avs_result_code, "Z") # CVV Tests def test_amex_cvv_response_m(self): response = self._charge_valid_amex(97.01) self.assertEqual(response.cvv_result_code, "M") def test_amex_cvv_response_n(self): response = self._charge_valid_amex(97.02) self.assertEqual(response.cvv_result_code, "N") def test_amex_cvv_response_p(self): response = self._charge_valid_amex(97.03) self.assertEqual(response.cvv_result_code, "P") def test_amex_token_cvv_response_m(self): response = self._charge_valid_amex_token(97.01) self.assertEqual(response.cvv_result_code, "M") def test_amex_token_cvv_response_n(self): response = self._charge_valid_amex_token(97.02) self.assertEqual(response.cvv_result_code, "N") def test_amex_token_cvv_response_p(self): response = self._charge_valid_amex_token(97.03) self.assertEqual(response.cvv_result_code, "P") # Amex to Visa 2nd def test_amex_response_denied(self): try: self._charge_valid_amex(10.08) except HpsCreditException, e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.")
class AmexTests(unittest.TestCase): charge_service = HpsCreditService(TestServicesConfig.valid_services_config) def test_amex_charge(self): response = self._charge_valid_amex(50) self.assertEqual(response.response_code, "00") # AVS Tests def test_amex_avs_response_a(self): response = self._charge_valid_amex(90.01) self.assertEqual(response.avs_result_code, "A") def test_amex_avs_response_n(self): response = self._charge_valid_amex(90.02) self.assertEqual(response.avs_result_code, "N") def test_amex_avs_response_r(self): response = self._charge_valid_amex(90.03) self.assertEqual(response.avs_result_code, "R") def test_amex_avs_response_s(self): response = self._charge_valid_amex(90.04) self.assertEqual(response.avs_result_code, "S") def test_amex_avs_response_u(self): response = self._charge_valid_amex(90.05) self.assertEqual(response.avs_result_code, "U") def test_amex_avs_response_w(self): response = self._charge_valid_amex(90.06) self.assertEqual(response.avs_result_code, "W") def test_amex_avs_response_x(self): response = self._charge_valid_amex(90.07) self.assertEqual(response.avs_result_code, "X") def test_amex_avs_response_y(self): response = self._charge_valid_amex(90.08) self.assertEqual(response.avs_result_code, "Y") def test_amex_avs_response_z(self): response = self._charge_valid_amex(90.09) self.assertEqual(response.avs_result_code, "Z") # CVV Tests def test_amex_cvv_response_m(self): response = self._charge_valid_amex(97.01) self.assertEqual(response.cvv_result_code, "M") def test_amex_cvv_response_n(self): response = self._charge_valid_amex(97.02) self.assertEqual(response.cvv_result_code, "N") def test_amex_cvv_response_p(self): response = self._charge_valid_amex(97.03) self.assertEqual(response.cvv_result_code, "P") def test_amex_token_cvv_response_m(self): response = self._charge_valid_amex_token(97.01) self.assertEqual(response.cvv_result_code, "M") def test_amex_token_cvv_response_n(self): response = self._charge_valid_amex_token(97.02) self.assertEqual(response.cvv_result_code, "N") def test_amex_token_cvv_response_p(self): response = self._charge_valid_amex_token(97.03) self.assertEqual(response.cvv_result_code, "P") # Amex to Visa 2nd def test_amex_response_denied(self): try: self._charge_valid_amex(10.08) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_amex_response_card_expired(self): try: self._charge_valid_amex(10.32) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.expired_card, e.code) return self.fail("No exception was thrown.") def test_amex_response_please_call(self): try: self._charge_valid_amex(10.34) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_amex_response_invalid_merchant(self): try: self._charge_valid_amex(10.22) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_amex_response_invalid_amount(self): try: self._charge_valid_amex(10.27) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.invalid_amount, e.code) return self.fail("No exception was thrown.") def test_amex_response_no_action_taken(self): try: self._charge_valid_amex(10.14) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.incorrect_number, e.code) return self.fail("No exception was thrown.") def test_amex_response_invalid_cvv2(self): try: self._charge_valid_amex(10.23) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.incorrect_cvc, e.code) return self.fail("No exception was thrown.") def test_amex_response_message_format_error(self): try: self._charge_valid_amex(10.06) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail("No exception was thrown.") def test_amex_response_invalid_originator(self): try: self._charge_valid_amex(10.30) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail("No exception was thrown.") def test_amex_response_card_declined(self): try: self._charge_valid_amex(10.25) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_amex_response_account_cancelled(self): try: self._charge_valid_amex(10.13) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_amex_response_merchant_close(self): try: self._charge_valid_amex(10.12) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail("No exception was thrown.") def test_amex_response_pickup_card(self): try: self._charge_valid_amex(10.04) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") # Verify, Authorize & Capture def test_amex_verify(self): response = self.charge_service.verify(TestCreditCard.valid_amex, TestCardHolder.valid_card_holder) self.assertEqual("00", response.response_code) def test_amex_authorize(self): response = self.charge_service.authorize( 50, "usd", TestCreditCard.valid_amex, TestCardHolder.valid_card_holder) self.assertEqual("00", response.response_code) def test_amex_token_authorize(self): response = self.charge_service.authorize( 50, "usd", TestCreditCard.valid_amex, TestCardHolder.valid_card_holder, True) self.assertEqual('0', response.token_data.token_rsp_code) self.assertEqual("00", response.response_code) def test_amex_capture(self): # Authorize the card. auth_response = self.charge_service.authorize( 50, "usd", TestCreditCard.valid_amex, TestCardHolder.valid_card_holder) self.assertEqual("00", auth_response.response_code) # Capture the authorization. capture_response = self.charge_service.capture( auth_response.transaction_id) self.assertEqual("00", capture_response.response_code) # Helper Method def _charge_valid_amex(self, amt): response = self.charge_service.charge(amt, "usd", TestCreditCard.valid_amex, TestCardHolder.valid_card_holder) if response is None: self.fail("Response is null.") return response def _charge_valid_amex_token(self, amt): token_service = HpsTokenService( TestServicesConfig.valid_services_config.credential_token) token_response = token_service.get_token(TestCreditCard.valid_amex) response = self.charge_service.charge(amt, 'usd', token_response.token_value, TestCardHolder.valid_card_holder) if response is None: self.fail('Response is null.') return response
class VisaTests(unittest.TestCase): charge_service = HpsCreditService(TestServicesConfig.valid_services_config) def test_visa_should_charge(self): response = self._charge_valid_visa(50) self.assertEqual("00", response.response_code) def test_visa_with_details(self): details = HpsTransactionDetails() details.memo = 'memo' details.invoice_number = '1234' details.customer_id = 'customerID' charge = self.charge_service.charge(50, 'usd', TestCreditCard.valid_visa, TestCardHolder.valid_card_holder, False, 'descriptor', False, details) self.assertIsNotNone(charge) transaction = self.charge_service.get(charge.transaction_id) self.assertIsNotNone(transaction) self.assertEqual(transaction.memo, 'memo') self.assertEqual(transaction.invoice_number, '1234') self.assertEqual(transaction.customer_id, 'customerID') # AVS Tests def test_visa_avs_response_b(self): response = self._charge_valid_visa(91.01) self.assertEqual("B", response.avs_result_code) def test_visa_avs_response_c(self): response = self._charge_valid_visa(91.02) self.assertEqual("C", response.avs_result_code) def test_visa_avs_response_d(self): response = self._charge_valid_visa(91.03) self.assertEqual("D", response.avs_result_code) def test_visa_avs_response_i(self): response = self._charge_valid_visa(91.05) self.assertEqual("I", response.avs_result_code) def test_visa_avs_response_m(self): response = self._charge_valid_visa(91.06) self.assertEqual("M", response.avs_result_code) def test_visa_avs_response_p(self): response = self._charge_valid_visa(91.07) self.assertEqual("P", response.avs_result_code) # CVV Tests def test_visa_cvv_response_m(self): response = self._charge_valid_visa(96.01) self.assertEqual("M", response.cvv_result_code) def test_visa_cvv_response_n(self): response = self._charge_valid_visa(96.02) self.assertEqual("N", response.cvv_result_code) def test_visa_cvv_response_p(self): response = self._charge_valid_visa(96.03) self.assertEqual("P", response.cvv_result_code) def test_visa_cvv_response_s(self): response = self._charge_valid_visa(96.04) self.assertEqual("S", response.cvv_result_code) def test_visa_cvv_response_u(self): response = self._charge_valid_visa(96.05) self.assertEqual("U", response.cvv_result_code) # Visa to Visa 2nd # def test_visa_response_1033(self): # try: # self._charge_valid_visa(10.33) # except HpsCreditException, e: # self.assertEqual(HpsExceptionCodes.card_declined, e.code) # return # # self.fail("No exception was thrown.") def test_visa_response_refer_card_issuer(self): try: self._charge_valid_visa(10.34) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_visa_response_invalid_merchant(self): try: self._charge_valid_visa(10.22) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_visa_response_pickup_card(self): try: self._charge_valid_visa(10.04) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_visa_response_do_not_honor(self): try: self._charge_valid_visa(10.25) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_visa_response_invalid_transaction(self): try: self._charge_valid_visa(10.26) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail("No exception was thrown.") def test_visa_response_invalid_amount(self): try: self._charge_valid_visa(10.27) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.invalid_amount, e.code) return self.fail("No exception was thrown.") def test_visa_response_invalid_card(self): try: self._charge_valid_visa(10.28) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.incorrect_number, e.code) return self.fail("No exception was thrown.") def test_visa_response_invalid_issuer(self): try: self._charge_valid_visa(10.18) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail("No exception was thrown.") def test_visa_response_system_error_reenter(self): try: self._charge_valid_visa(10.29) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail("No exception was thrown.") def test_visa_response_lost_card(self): try: self._charge_valid_visa(10.31) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_visa_response_hot_card_pickup(self): try: self._charge_valid_visa(10.03) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_visa_response_insufficient_funds(self): try: self._charge_valid_visa(10.08) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_visa_response_no_check_amount(self): try: self._charge_valid_visa(10.16) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail("No exception was thrown.") def test_visa_response_no_savings_account(self): try: self._charge_valid_visa(10.17) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail("No exception was thrown.") def test_visa_response_expired_card(self): try: self._charge_valid_visa(10.32) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.expired_card, e.code) return self.fail("No exception was thrown.") def test_visa_response_txn_not_permitted(self): try: self._charge_valid_visa(10.30) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail("No exception was thrown.") def test_visa_response_invalid_aquirer(self): try: self._charge_valid_visa(10.30) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail("No exception was thrown.") def test_visa_response_exceeds_limit(self): try: self._charge_valid_visa(10.09) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_visa_response_restricted_card(self): try: self._charge_valid_visa(10.10) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_visa_response_security_violation(self): try: self._charge_valid_visa(10.11) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_visa_response_check_digit_err(self): try: self._charge_valid_visa(10.05) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.incorrect_cvc, e.code) return self.fail("No exception was thrown.") def test_visa_response_system_error(self): try: self._charge_valid_visa(10.21) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail("No exception was thrown.") def test_visa_response_cvv2_mismatch(self): try: self._charge_valid_visa(10.23) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.incorrect_cvc, e.code) return self.fail("No exception was thrown.") # Verify, Authorize & Capture def test_visa_verify(self): response = self.charge_service.verify(TestCreditCard.valid_visa, TestCardHolder.valid_card_holder) self.assertEqual("85", response.response_code) def test_visa_edit(self): auth_response = self.charge_service.authorize( 50, 'usd', TestCreditCard.valid_visa, TestCardHolder.valid_card_holder) self.assertEqual('00', auth_response.response_code) edit_response = self.charge_service.edit(auth_response.transaction_id, 55, 5) self.assertEqual('00', edit_response.response_code) def test_visa_authorize(self): response = self.charge_service.authorize( 50, "usd", TestCreditCard.valid_visa, TestCardHolder.valid_card_holder) self.assertEqual("00", response.response_code) def test_visa_token_authorize(self): response = self.charge_service.authorize( 50, "usd", TestCreditCard.valid_visa, TestCardHolder.valid_card_holder, True) self.assertEqual('0', response.token_data.token_rsp_code) self.assertEqual("00", response.response_code) def test_visa_capture(self): # Authorize the card. auth_response = self.charge_service.authorize( 50, "usd", TestCreditCard.valid_visa, TestCardHolder.valid_card_holder) self.assertEqual("00", auth_response.response_code) # Capture the authorization. capture_response = self.charge_service.capture( auth_response.transaction_id) self.assertEqual("00", capture_response.response_code) # test CPC stuff def test_visa_charge_cpc_req_should_return_business(self): """ Visa charge and CPC Req should return cpcIndicator 'B'. """ charge_response = self.charge_service.charge( 112.34, 'usd', TestCreditCard.valid_visa, TestCardHolder.valid_card_holder, cpc_req=True) self.assertEqual('00', charge_response.response_code) self.assertEqual('B', charge_response.cpc_indicator) cpc_data = HpsCPCData() cpc_data.card_holder_po_number = '123456789' cpc_data.tax_type = HpsTaxType.sales_tax cpc_data.tax_amount = '15' edit_response = self.charge_service.cpc_edit( charge_response.transaction_id, cpc_data) self.assertEqual('00', edit_response.response_code) def test_visa_charge_cpc_req_should_return_corporate(self): """ Visa charge and CPC Req should return cpcIndicator 'R'. """ charge_response = self.charge_service.charge( 123.45, 'usd', TestCreditCard.valid_visa, TestCardHolder.valid_card_holder, cpc_req=True) self.assertEqual('00', charge_response.response_code) self.assertEqual('R', charge_response.cpc_indicator) cpc_data = HpsCPCData() cpc_data.card_holder_po_number = '123456789' cpc_data.tax_type = HpsTaxType.sales_tax cpc_data.tax_amount = '15' edit_response = self.charge_service.cpc_edit( charge_response.transaction_id, cpc_data) self.assertEqual('00', edit_response.response_code) def test_visa_charge_cpc_req_should_return_purchasing(self): """ Visa charge and CPC Req should return cpcIndicator 'S'. """ charge_response = self.charge_service.charge( 134.56, 'usd', TestCreditCard.valid_visa, TestCardHolder.valid_card_holder, cpc_req=True) self.assertEqual('00', charge_response.response_code) self.assertEqual('S', charge_response.cpc_indicator) cpc_data = HpsCPCData() cpc_data.card_holder_po_number = '123456789' cpc_data.tax_type = HpsTaxType.sales_tax cpc_data.tax_amount = '15' edit_response = self.charge_service.cpc_edit( charge_response.transaction_id, cpc_data) self.assertEqual('00', edit_response.response_code) def test_visa_auth_cpc_req_should_return_business(self): """ Visa auth and CPC Req should return cpcIndicator 'B'. """ charge_response = self.charge_service.authorize( 112.34, 'usd', TestCreditCard.valid_visa, TestCardHolder.valid_card_holder, cpc_req=True) self.assertEqual('00', charge_response.response_code) self.assertEqual('B', charge_response.cpc_indicator) cpc_data = HpsCPCData() cpc_data.card_holder_po_number = '123456789' cpc_data.tax_type = HpsTaxType.sales_tax cpc_data.tax_amount = '15' edit_response = self.charge_service.cpc_edit( charge_response.transaction_id, cpc_data) self.assertEqual('00', edit_response.response_code) def test_visa_auth_cpc_req_should_return_corporate(self): """ Visa auth and CPC Req should return cpcIndicator 'R'. """ charge_response = self.charge_service.authorize( 123.45, 'usd', TestCreditCard.valid_visa, TestCardHolder.valid_card_holder, cpc_req=True) self.assertEqual('00', charge_response.response_code) self.assertEqual('R', charge_response.cpc_indicator) cpc_data = HpsCPCData() cpc_data.card_holder_po_number = '123456789' cpc_data.tax_type = HpsTaxType.sales_tax cpc_data.tax_amount = '15' edit_response = self.charge_service.cpc_edit( charge_response.transaction_id, cpc_data) self.assertEqual('00', edit_response.response_code) def test_visa_auth_cpc_req_should_return_purchasing(self): """ Visa auth and CPC Req should return cpcIndicator 'S'. """ charge_response = self.charge_service.authorize( 134.56, 'usd', TestCreditCard.valid_visa, TestCardHolder.valid_card_holder, cpc_req=True) self.assertEqual('00', charge_response.response_code) self.assertEqual('S', charge_response.cpc_indicator) cpc_data = HpsCPCData() cpc_data.card_holder_po_number = '123456789' cpc_data.tax_type = HpsTaxType.sales_tax cpc_data.tax_amount = '15' edit_response = self.charge_service.cpc_edit( charge_response.transaction_id, cpc_data) self.assertEqual('00', edit_response.response_code) # Helper Methods def _charge_valid_visa(self, amount): response = self.charge_service.charge(amount, "usd", TestCreditCard.valid_visa, TestCardHolder.valid_card_holder) if response is None: self.fail("Response is None") return response
class DiscoverTests(unittest.TestCase): charge_service = HpsCreditService(TestServicesConfig.valid_services_config) def test_discover_charge(self): response = self._charge_valid_discover(50) self.assertEqual(response.response_code, '00') def test_discover_avs_response_A(self): response = self._charge_valid_discover(91.01) self.assertEqual(response.avs_result_code, 'A') def test_discover_avs_response_N(self): response = self._charge_valid_discover(91.02) self.assertEqual(response.avs_result_code, 'N') def test_discover_avs_response_R(self): response = self._charge_valid_discover(91.03) self.assertEqual(response.avs_result_code, 'R') def test_discover_avs_response_U(self): response = self._charge_valid_discover(91.05) self.assertEqual(response.avs_result_code, 'U') def test_discover_avs_response_Y(self): response = self._charge_valid_discover(91.06) self.assertEqual(response.avs_result_code, 'Y') def test_discover_avs_response_Z(self): response = self._charge_valid_discover(91.07) self.assertEqual(response.avs_result_code, 'Z') def test_discover_response_refer_card_issuer(self): try: response = self._charge_valid_discover(10.34) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail('No exception was thrown.') def test_discover_response_invalid_merchant(self): try: response = self._charge_valid_discover(10.22) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail('No exception was thrown.') def test_discover_response_pickup_card(self): try: response = self._charge_valid_discover(10.04) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail('No exception was thrown.') def test_discover_response_do_not_honor(self): try: response = self._charge_valid_discover(10.25) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail('No exception was thrown.') def test_discover_response_invalid_transaction(self): try: response = self._charge_valid_discover(10.26) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail('No exception was thrown.') def test_discover_response_invalid_amount(self): try: response = self._charge_valid_discover(10.27) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.invalid_amount, e.code) return self.fail('No exception was thrown.') def test_discover_response_invalid_card(self): try: response = self._charge_valid_discover(10.28) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.incorrect_number, e.code) return self.fail('No exception was thrown.') def test_discover_response_invalid_issuer(self): try: response = self._charge_valid_discover(10.18) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail('No exception was thrown.') def test_discover_response_system_error_reenter(self): try: response = self._charge_valid_discover(10.29) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail('No exception was thrown.') def test_discover_response_message_format_error(self): try: response = self._charge_valid_discover(10.06) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail('No exception was thrown.') def test_discover_response_lost_card(self): try: response = self._charge_valid_discover(10.31) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail('No exception was thrown.') def test_discover_response_insufficient_funds(self): try: response = self._charge_valid_discover(10.08) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail('No exception was thrown.') def test_discover_response_no_savings_account(self): try: response = self._charge_valid_discover(10.17) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail('No exception was thrown.') def test_discover_response_expired_card(self): try: response = self._charge_valid_discover(10.32) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.expired_card, e.code) return self.fail('No exception was thrown.') def test_discover_response_no_card_record(self): try: response = self._charge_valid_discover(10.24) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail('No exception was thrown.') def test_discover_response_txn_not_permitted(self): try: response = self._charge_valid_discover(10.20) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail('No exception was thrown.') def test_discover_response_invalid_aquirer(self): try: response = self._charge_valid_discover(10.30) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail('No exception was thrown.') def test_discover_response_exceeds_limit(self): try: response = self._charge_valid_discover(10.09) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail('No exception was thrown.') def test_discover_response_restricted_card(self): try: response = self._charge_valid_discover(10.10) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail('No exception was thrown.') def test_discover_response_security_violation(self): try: response = self._charge_valid_discover(10.19) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail('No exception was thrown.') def test_discover_response_exceeds_freq_limits(self): try: response = self._charge_valid_discover(10.11) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail('No exception was thrown.') def test_discover_response_no_to_account(self): try: response = self._charge_valid_discover(10.13) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail('No exception was thrown.') def test_discover_response_invalid_account(self): try: response = self._charge_valid_discover(10.14) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.incorrect_number, e.code) return self.fail('No exception was thrown.') def test_discover_response_system_error(self): try: response = self._charge_valid_discover(10.21) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail('No exception was thrown.') # Verify, Authorize & Capture def test_discover_verify(self): response = self.charge_service.verify(TestCreditCard.valid_discover, TestCardHolder.valid_card_holder) self.assertEqual('85', response.response_code) def test_discover_authorize(self): response = self.charge_service.authorize( 50, 'usd', TestCreditCard.valid_discover, TestCardHolder.valid_card_holder) self.assertEqual('00', response.response_code) def test_discover_token_authorization(self): response = self.charge_service.authorize( 50, 'usd', TestCreditCard.valid_discover, TestCardHolder.valid_card_holder, True) self.assertEqual('0', response.token_data.token_rsp_code) self.assertEqual('00', response.response_code) def test_discover_capture(self): # Authorize the card. authResponse = self.charge_service.authorize( 50, 'usd', TestCreditCard.valid_discover, TestCardHolder.valid_card_holder) self.assertEqual('00', authResponse.response_code) # Capture the authorization. captureResponse = self.charge_service.capture( authResponse.transaction_id) self.assertEqual('00', captureResponse.response_code) def _charge_valid_discover(self, amt): response = self.charge_service.charge(amt, 'usd', TestCreditCard.valid_discover, TestCardHolder.valid_card_holder) if response is None: self.fail('Response is null.') return response
class MasterCardTests(unittest.TestCase): charge_service = HpsCreditService(TestServicesConfig.valid_services_config) def test_mastercard_charge(self): response = self._charge_valid_mastercard(50) self.assertEqual(response.response_code, "00") def test_visa_with_details(self): details = HpsTransactionDetails() details.memo = 'memo' details.invoice_number = '1234' details.customer_id = 'customerID' charge = self.charge_service.charge(50, 'usd', TestCreditCard.valid_mastercard, TestCardHolder.valid_card_holder, False, 'descriptor', False, details) self.assertIsNotNone(charge) transaction = self.charge_service.get(charge.transaction_id) self.assertIsNotNone(transaction) self.assertEquals(transaction.memo, 'memo') self.assertEquals(transaction.invoice_number, '1234') self.assertEquals(transaction.customer_id, 'customerID') # AVS Tests def test_mastercard_avs_response_A(self): response = self._charge_valid_mastercard(90.01) self.assertEqual(response.avs_result_code, "A") def test_mastercard_avs_response_N(self): response = self._charge_valid_mastercard(90.02) self.assertEqual(response.avs_result_code, "N") def test_mastercard_avs_response_R(self): response = self._charge_valid_mastercard(90.03) self.assertEqual(response.avs_result_code, "R") def test_mastercard_avs_response_S(self): response = self._charge_valid_mastercard(90.04) self.assertEqual(response.avs_result_code, "S") def test_mastercard_avs_response_U(self): response = self._charge_valid_mastercard(90.05) self.assertEqual(response.avs_result_code, "U") def test_mastercard_avs_response_W(self): response = self._charge_valid_mastercard(90.06) self.assertEqual(response.avs_result_code, "W") def test_mastercard_avs_response_X(self): response = self._charge_valid_mastercard(90.07) self.assertEqual(response.avs_result_code, "X") def test_mastercard_avs_response_Y(self): response = self._charge_valid_mastercard(90.08) self.assertEqual(response.avs_result_code, "Y") def test_mastercard_avs_response_Z(self): response = self._charge_valid_mastercard(90.09) self.assertEqual(response.avs_result_code, "Z") # CVV Tests def test_mastercard_cvv_response_M(self): response = self._charge_valid_mastercard(95.01) self.assertEqual(response.cvv_result_code, "M") def test_mastercard_cvv_response_N(self): response = self._charge_valid_mastercard(95.02) self.assertEqual(response.cvv_result_code, "N") def test_mastercard_cvv_response_P(self): response = self._charge_valid_mastercard(95.03) self.assertEqual(response.cvv_result_code, "P") def test_mastercard_cvv_response_U(self): response = self._charge_valid_mastercard(95.04) self.assertEqual(response.cvv_result_code, "U") # mastercard responses def test_mastercard_response_refer_card_issuer(self): try: response = self._charge_valid_mastercard(10.34) except HpsCreditException, e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.")
class MasterCardTests(unittest.TestCase): charge_service = HpsCreditService(TestServicesConfig.valid_services_config) def test_mastercard_charge(self): response = self._charge_valid_mastercard(50) self.assertEqual(response.response_code, "00") def test_visa_with_details(self): details = HpsTransactionDetails() details.memo = 'memo' details.invoice_number = '1234' details.customer_id = 'customerID' charge = self.charge_service.charge(50, 'usd', TestCreditCard.valid_mastercard, TestCardHolder.valid_card_holder, False, 'descriptor', False, details) self.assertIsNotNone(charge) transaction = self.charge_service.get(charge.transaction_id) self.assertIsNotNone(transaction) self.assertEqual(transaction.memo, 'memo') self.assertEqual(transaction.invoice_number, '1234') self.assertEqual(transaction.customer_id, 'customerID') # AVS Tests def test_mastercard_avs_response_A(self): response = self._charge_valid_mastercard(90.01) self.assertEqual(response.avs_result_code, "A") def test_mastercard_avs_response_N(self): response = self._charge_valid_mastercard(90.02) self.assertEqual(response.avs_result_code, "N") def test_mastercard_avs_response_R(self): response = self._charge_valid_mastercard(90.03) self.assertEqual(response.avs_result_code, "R") def test_mastercard_avs_response_S(self): response = self._charge_valid_mastercard(90.04) self.assertEqual(response.avs_result_code, "S") def test_mastercard_avs_response_U(self): response = self._charge_valid_mastercard(90.05) self.assertEqual(response.avs_result_code, "U") def test_mastercard_avs_response_W(self): response = self._charge_valid_mastercard(90.06) self.assertEqual(response.avs_result_code, "W") def test_mastercard_avs_response_X(self): response = self._charge_valid_mastercard(90.07) self.assertEqual(response.avs_result_code, "X") def test_mastercard_avs_response_Y(self): response = self._charge_valid_mastercard(90.08) self.assertEqual(response.avs_result_code, "Y") def test_mastercard_avs_response_Z(self): response = self._charge_valid_mastercard(90.09) self.assertEqual(response.avs_result_code, "Z") # CVV Tests def test_mastercard_cvv_response_M(self): response = self._charge_valid_mastercard(95.01) self.assertEqual(response.cvv_result_code, "M") def test_mastercard_cvv_response_N(self): response = self._charge_valid_mastercard(95.02) self.assertEqual(response.cvv_result_code, "N") def test_mastercard_cvv_response_P(self): response = self._charge_valid_mastercard(95.03) self.assertEqual(response.cvv_result_code, "P") def test_mastercard_cvv_response_U(self): response = self._charge_valid_mastercard(95.04) self.assertEqual(response.cvv_result_code, "U") # mastercard responses def test_mastercard_response_refer_card_issuer(self): try: response = self._charge_valid_mastercard(10.34) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_mastercard_response_term_id_error(self): try: response = self._charge_valid_mastercard(10.22) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_mastercard_response_invalid_merchant(self): try: response = self._charge_valid_mastercard(10.01) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_mastercard_response_do_not_honor(self): try: response = self._charge_valid_mastercard(10.25) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_mastercard_response_invalid_transaction(self): try: response = self._charge_valid_mastercard(10.26) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail("No exception was thrown.") def test_mastercard_response_invalid_amount(self): try: response = self._charge_valid_mastercard(10.27) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.invalid_amount, e.code) return self.fail("No exception was thrown.") def test_mastercard_response_invalid_card(self): try: response = self._charge_valid_mastercard(10.28) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.incorrect_number, e.code) return self.fail("No exception was thrown.") def test_mastercard_response_invalid_issuer(self): try: response = self._charge_valid_mastercard(10.18) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail("No exception was thrown.") def test_mastercard_response_lost_card(self): try: response = self._charge_valid_mastercard(10.31) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_mastercard_response_hold_call(self): try: response = self._charge_valid_mastercard(10.03) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_mastercard_response_decline(self): try: response = self._charge_valid_mastercard(10.08) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_mastercard_response_expired_card(self): try: response = self._charge_valid_mastercard(10.32) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.expired_card, e.code) return self.fail("No exception was thrown.") def test_mastercard_response_exceeds_limit(self): try: response = self._charge_valid_mastercard(10.09) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_mastercard_response_restricted_card(self): try: response = self._charge_valid_mastercard(10.10) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_mastercard_response_security_violation(self): try: response = self._charge_valid_mastercard(10.19) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_mastercard_response_exceeds_freq_limit(self): try: response = self._charge_valid_mastercard(10.11) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.") def test_mastercard_response_card_no_error(self): try: response = self._charge_valid_mastercard(10.14) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.incorrect_number, e.code) return self.fail("No exception was thrown.") def test_mastercard_response_invalid_account(self): try: response = self._charge_valid_mastercard(10.06) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail("No exception was thrown.") def test_mastercard_response_system_error(self): try: response = self._charge_valid_mastercard(10.21) except HpsCreditException as e: self.assertEqual(HpsExceptionCodes.processing_error, e.code) return self.fail("No exception was thrown.") # Verify, Authorize, Refund & Capture def test_mastercard_verify(self): response = self.charge_service.verify(TestCreditCard.valid_mastercard, TestCardHolder.valid_card_holder) self.assertEqual("85", response.response_code) def test_mastercard_authorize(self): response = self.charge_service.authorize( 50, "usd", TestCreditCard.valid_mastercard, TestCardHolder.valid_card_holder) self.assertEqual("00", response.response_code) def test_mastercard_token_authorize(self): response = self.charge_service.authorize( 50, "usd", TestCreditCard.valid_mastercard, TestCardHolder.valid_card_holder, True) self.assertEqual('0', response.token_data.token_rsp_code) self.assertEqual("00", response.response_code) def test_mastercard_refund(self): chargeResponse = self.charge_service.charge( 25, "usd", TestCreditCard.valid_mastercard, TestCardHolder.cert_holder_short_zip_no_street) refundResponse = self.charge_service.refund( 25, "usd", chargeResponse.transaction_id) self.assertEqual(refundResponse.response_code, '00') def test_mastercard_capture(self): # Authorize the card. authResponse = self.charge_service.authorize( 50, "usd", TestCreditCard.valid_mastercard, TestCardHolder.valid_card_holder) self.assertEqual("00", authResponse.response_code) # Capture the authorization. captureResponse = self.charge_service.capture( authResponse.transaction_id) self.assertEqual("00", captureResponse.response_code) def _charge_valid_mastercard(self, amt): response = self.charge_service.charge(amt, "usd", TestCreditCard.valid_mastercard, TestCardHolder.valid_card_holder) if response is None: self.fail("Response is null.") return response
class Certification(unittest.TestCase): client = HpsCreditService(TestServicesConfig.valid_services_config) # CREDIT SALE def test_credit_sale_visa(self): self.client.charge(10.00, "USD", TestCreditCard.valid_visa, TestCardHolder.cert_holder_long_zip) def test_credit_sale_mastercard(self): self.client.charge(11.00, "USD", TestCreditCard.valid_mastercard, TestCardHolder.cert_holder_short_zip) def test_credit_sale_discover(self): self.client.charge(12.00, "USD", TestCreditCard.valid_discover, TestCardHolder.cert_holder_long_zip_no_street) def test_credit_sale_amex(self): self.client.charge(13.00, "USD", TestCreditCard.valid_amex, TestCardHolder.cert_holder_short_zip_no_street) # CREDIT AUTH & CAPTURE def test_credit_auth_visa(self): response = self.client.authorize(15.00, "USD", TestCreditCard.valid_visa, TestCardHolder.cert_holder_long_zip) self.client.capture(response.transaction_id) def test_credit_auth_mastercard(self): response = self.client.authorize(16.00, "USD", TestCreditCard.valid_mastercard, TestCardHolder.cert_holder_short_zip) self.client.capture(response.transaction_id) def test_credit_auth_discover(self): response = self.client.authorize( 17.00, "USD", TestCreditCard.valid_discover, TestCardHolder.cert_holder_long_zip_no_street) self.client.capture(response.transaction_id) def test_credit_auth_amex(self): response = self.client.authorize( 18.00, "USD", TestCreditCard.valid_amex, TestCardHolder.cert_holder_short_zip_no_street) self.client.capture(response.transaction_id) # CREDIT ACCOUNT VERIFY def test_credit_account_verify_visa(self): self.client.verify(TestCreditCard.valid_visa_no_cvv) def test_credit_account_verify_mastercard(self): self.client.verify(TestCreditCard.valid_mastercard_no_cvv) def test_credit_account_verify_discover(self): self.client.verify(TestCreditCard.valid_discover_no_cvv) # CREDIT REVERSAL def test_credit_reversal_visa(self): response = self.client.authorize(60.00, "USD", TestCreditCard.valid_visa_no_cvv) self.client.capture(response.transaction_id) self.client.reverse(response.transaction_id, 60, "USD") def test_credit_reversal_mastercard(self): response = self.client.authorize( 61.00, "USD", TestCreditCard.valid_mastercard_no_cvv) self.client.capture(response.transaction_id) self.client.reverse(response.transaction_id, 61, "USD") def test_credit_reversal_discover(self): response = self.client.authorize(62.00, "USD", TestCreditCard.valid_discover_no_cvv) self.client.capture(response.transaction_id) self.client.reverse(response.transaction_id, 62, "USD") def test_credit_reversal_amex(self): response = self.client.authorize(63.00, "USD", TestCreditCard.valid_amex_no_cvv) self.client.capture(response.transaction_id) self.client.reverse(response.transaction_id, 63, "USD") # CREDIT RETURN def test_credit_return_visa(self): response = self.client.charge(50.00, "USD", TestCreditCard.valid_visa_no_cvv) self.client.refund(50, "USD", response.transaction_id) def test_credit_return_mastercard(self): response = self.client.charge(51.00, "USD", TestCreditCard.valid_mastercard_no_cvv) self.client.refund(51, "USD", response.transaction_id) def test_credit_return_discover(self): response = self.client.charge(52.00, "USD", TestCreditCard.valid_discover_no_cvv) self.client.refund(52, "USD", response.transaction_id) def test_credit_return_amex(self): response = self.client.charge(53.00, "USD", TestCreditCard.valid_amex_no_cvv) self.client.refund(53, "USD", response.transaction_id)
class VisaTests(unittest.TestCase): charge_service = HpsCreditService( TestServicesConfig.valid_services_config) def test_visa_should_charge(self): response = self._charge_valid_visa(50) self.assertEqual("00", response.response_code) def test_visa_with_details(self): details = HpsTransactionDetails() details.memo = 'memo' details.invoice_number = '1234' details.customer_id = 'customerID' charge = self.charge_service.charge( 50, 'usd', TestCreditCard.valid_visa, TestCardHolder.valid_card_holder, False, 'descriptor', False, details) self.assertIsNotNone(charge) transaction = self.charge_service.get(charge.transaction_id) self.assertIsNotNone(transaction) self.assertEquals(transaction.memo, 'memo') self.assertEquals(transaction.invoice_number, '1234') self.assertEquals(transaction.customer_id, 'customerID') # AVS Tests def test_visa_avs_response_b(self): response = self._charge_valid_visa(91.01) self.assertEqual("B", response.avs_result_code) def test_visa_avs_response_c(self): response = self._charge_valid_visa(91.02) self.assertEqual("C", response.avs_result_code) def test_visa_avs_response_d(self): response = self._charge_valid_visa(91.03) self.assertEqual("D", response.avs_result_code) def test_visa_avs_response_i(self): response = self._charge_valid_visa(91.05) self.assertEqual("I", response.avs_result_code) def test_visa_avs_response_m(self): response = self._charge_valid_visa(91.06) self.assertEqual("M", response.avs_result_code) def test_visa_avs_response_p(self): response = self._charge_valid_visa(91.07) self.assertEqual("P", response.avs_result_code) # CVV Tests def test_visa_cvv_response_m(self): response = self._charge_valid_visa(96.01) self.assertEqual("M", response.cvv_result_code) def test_visa_cvv_response_n(self): response = self._charge_valid_visa(96.02) self.assertEqual("N", response.cvv_result_code) def test_visa_cvv_response_p(self): response = self._charge_valid_visa(96.03) self.assertEqual("P", response.cvv_result_code) def test_visa_cvv_response_s(self): response = self._charge_valid_visa(96.04) self.assertEqual("S", response.cvv_result_code) def test_visa_cvv_response_u(self): response = self._charge_valid_visa(96.05) self.assertEqual("U", response.cvv_result_code) # Visa to Visa 2nd # def test_visa_response_1033(self): # try: # self._charge_valid_visa(10.33) # except HpsCreditException, e: # self.assertEqual(HpsExceptionCodes.card_declined, e.code) # return # # self.fail("No exception was thrown.") def test_visa_response_refer_card_issuer(self): try: self._charge_valid_visa(10.34) except HpsCreditException, e: self.assertEqual(HpsExceptionCodes.card_declined, e.code) return self.fail("No exception was thrown.")
class PayPlanRecurringTests(unittest.TestCase): credit_service = HpsCreditService(TestServicesConfig.valid_services_config, True) pp_service = HpsPayPlanService(TestServicesConfig.valid_pay_plan_config, True) schedule = pp_service.page(1, 0).find_all_schedules({ 'scheduleStatus': HpsPayPlanScheduleStatus.ACTIVE, 'scheduleIdentifier': 'SecureSubmit' }).results[0] def test_one_time_with_card(self): response = self.credit_service.recurring( TestCreditCard.valid_visa, 10, self.schedule, TestCardHolder.valid_card_holder, True) self.assertIsNotNone(response) self.assertEqual('00', response.response_code) def test_one_time_with_token(self): token = self._get_token(TestCreditCard.valid_visa) response = self.credit_service.recurring(token, 10, self.schedule, None, True) self.assertIsNotNone(response) self.assertEqual('00', response.response_code) def test_one_time_with_payment_method_key(self): payment_method_key = self._get_payment_method_key() response = self.credit_service.recurring(payment_method_key, 10, self.schedule, None, True) self.assertIsNotNone(response) self.assertEqual('00', response.response_code) def test_with_card(self): response = self.credit_service.recurring( TestCreditCard.valid_visa, 10, self.schedule, TestCardHolder.valid_card_holder) self.assertIsNotNone(response) self.assertEqual('00', response.response_code) def test_with_token(self): token = self._get_token(TestCreditCard.valid_visa) response = self.credit_service.recurring(token, 10, self.schedule) self.assertIsNotNone(response) self.assertEqual('00', response.response_code) def test_with_payment_method_key(self): payment_method_key = self._get_payment_method_key() response = self.credit_service.recurring(payment_method_key, 10, self.schedule) self.assertIsNotNone(response) self.assertEqual('00', response.response_code) def _get_token(self, card, key=None): if key is not None and key != '': self.public_key = key else: self.public_key = TestServicesConfig.valid_services_config.credential_token self.token_service = HpsTokenService(self.public_key) token_response = self.token_service.get_token(card) if token_response.token_value is not None: token = HpsTokenData() token.token_value = token_response.token_value return token else: return token_response def _get_payment_method_key(self): return self.schedule.payment_method_key
class BatchCertTests(unittest.TestCase): batch_service = HpsBatchService(TestServicesConfig.valid_services_config) charge_service = HpsCreditService(TestServicesConfig.valid_services_config) direct_marketing = HpsDirectMarketData('123456') def test_inline_certification(self): self.batch_should_close_ok() self.visa_should_verify_ok() self.mastercard_should_verify_ok() self.discover_should_verify_ok() self.amex_avs_should_verify_ok() # self.visa_balance_inquiry() self.visa_should_charge_ok() self.mastercard_should_charge_ok() self.discover_should_charge_ok() self.amex_should_charge_ok() self.jcb_should_charge_ok() self.visa_should_auth_ok() self.mastercard_should_auth_ok() self.discover_should_auth_ok() self.visa_should_capture_ok() self.mastercard_should_capture_ok() self.visa_partial_approval() self.discover_partial_approval() self.mastercard_partial_approval() self.visa_level_ii_no_tax_should_response_b() self.visa_level_ii_tax_should_response_b() self.visa_level_ii_exempt_should_response_r() self.visa_level_ii_should_response_s() self.mastercard_level_ii_no_tax_should_response_s() self.mastercard_level_ii_tax_no_po_should_response_s() self.mastercard_level_ii_tax_with_po_should_response_s() self.mastercard_level_ii_exempt_should_response_s() self.amex_level_ii_no_tax() self.amex_level_ii_tax_no_po() self.amex_level_ii_tax_with_po() self.amex_level_ii_exempt() self.mastercard_should_return_ok() self.visa_should_reverse_ok() self.mastercard_should_reverse_ok() self.batch_should_close_ok() def batch_should_close_ok(self): try: response = self.batch_service.close_batch() if response is None: self.fail("Response is None") print('batch id: {0}'.format(response.id)) print('sequence number: {0}'.format(response.sequence_number)) except HpsException as e: if e.code != HpsExceptionCodes.no_open_batch: self.fail("Something failed other than 'no open batch'.") """ card verify """ def visa_should_verify_ok(self): response = self.charge_service.verify(TestCreditCard.valid_visa) if response is None: self.fail("Response is None") self.assertEqual(response.response_code, "85") def mastercard_should_verify_ok(self): response = self.charge_service.verify(TestCreditCard.valid_mastercard) if response is None: self.fail("Response is None") self.assertEqual(response.response_code, "85") def discover_should_verify_ok(self): response = self.charge_service.verify(TestCreditCard.valid_discover) if response is None: self.fail("Response is None") self.assertEqual(response.response_code, "85") def amex_avs_should_verify_ok(self): response = self.charge_service.verify( TestCreditCard.valid_amex, TestCardHolder.cert_holder_short_zip_no_street) if response is None: self.fail("Response is None") self.assertEqual(response.response_code, '00') # def visa_balance_inquiry(self): # response = self.charge_service.balance_inquiry(TestCreditCard.valid_visa) # if response is None: # self.fail("Response is None") # # self.assertEqual(response.response_code, '00') """ sale (for multi use token) """ def visa_should_charge_ok(self): response = self.charge_service.charge( 17.01, "usd", TestCreditCard.valid_visa, TestCardHolder.cert_holder_short_zip) if response is None: self.fail("Response is None") self.assertEqual(response.response_code, "00") def mastercard_should_charge_ok(self): response = self.charge_service.charge( 17.02, "usd", TestCreditCard.valid_mastercard, TestCardHolder.cert_holder_short_zip_no_street) if response is None: self.fail("Response is None") self.assertEqual(response.response_code, "00") def discover_should_charge_ok(self): response = self.charge_service.charge( 17.03, "usd", TestCreditCard.valid_discover, TestCardHolder.cert_holder_long_zip_no_street) if response is None: self.fail("Response is None") self.assertEqual(response.response_code, "00") def amex_should_charge_ok(self): response = self.charge_service.charge( 17.04, "usd", TestCreditCard.valid_amex, TestCardHolder.cert_holder_short_zip) if response is None: self.fail("Response is None") self.assertEqual(response.response_code, "00") def jcb_should_charge_ok(self): response = self.charge_service.charge( 17.05, "usd", TestCreditCard.valid_jcb, TestCardHolder.cert_holder_long_zip) if response is None: self.fail("Response is None") self.assertEqual(response.response_code, "00") """ authorization (delayed capture) """ _visa_auth_txn_id = None _mc_auth_txn_id = None _discover_auth_txn_id = None def visa_should_auth_ok(self): response = self.charge_service.authorize( 17.06, "usd", TestCreditCard.valid_visa, TestCardHolder.cert_holder_short_zip) if response is None: self.fail("Response is None") self.assertEqual(response.response_code, "00") self._visa_auth_txn_id = response.transaction_id def mastercard_should_auth_ok(self): response = self.charge_service.authorize( 17.07, "usd", TestCreditCard.valid_mastercard, TestCardHolder.cert_holder_short_zip_no_street) if response is None: self.fail("Response is None") self.assertEqual(response.response_code, "00") self._mc_auth_txn_id = response.transaction_id def discover_should_auth_ok(self): response = self.charge_service.authorize( 17.08, "usd", TestCreditCard.valid_discover, TestCardHolder.cert_holder_long_zip_no_street) if response is None: self.fail("Response is None") self.assertEqual(response.response_code, "00") self._discover_auth_txn_id = response.transaction_id def visa_should_capture_ok(self): response = self.charge_service.capture( self._visa_auth_txn_id, '17.06') if response is None: self.fail('Response is None') self.assertEqual(response.response_code, '00') def mastercard_should_capture_ok(self): response = self.charge_service.capture( self._mc_auth_txn_id, '17.07') if response is None: self.fail('Response is None') self.assertEqual(response.response_code, '00') """ partially - approved sale """ def visa_partial_approval(self): response = self.charge_service.charge( 130.00, 'usd', TestCreditCard.valid_visa, TestCardHolder.cert_holder_short_zip_no_street, allow_partial_auth=True, direct_market_data=self.direct_marketing ) if response is None: self.fail('Response is None') self.assertEqual(response.response_code, '10') self.assertEqual(response.authorized_amount, '110.00') def discover_partial_approval(self): response = self.charge_service.charge( 145.00, 'usd', TestCreditCard.valid_discover, TestCardHolder.cert_holder_short_zip_no_street, allow_partial_auth=True, direct_market_data=self.direct_marketing ) if response is None: self.fail('Response is None') self.assertEqual(response.response_code, '10') partial_auth_transaction_id = None def mastercard_partial_approval(self): response = self.charge_service.charge( 155.00, 'usd', TestCreditCard.valid_visa, TestCardHolder.cert_holder_short_zip_no_street, allow_partial_auth=True, direct_market_data=self.direct_marketing ) if response is None: self.fail('Response is None') self.assertEqual(response.response_code, '10') self.assertEqual(response.authorized_amount, '100.00') self.partial_auth_transaction_id = response.transaction_id """ level II corporate purchase card """ def visa_level_ii_no_tax_should_response_b(self): response = self.charge_service.charge( 112.34, 'usd', TestCreditCard.valid_visa, TestCardHolder.cert_holder_long_zip, cpc_req=True ) if response is None: self.fail('Response is None') self.assertEqual(response.response_code, '00') edit_response = self.charge_service.cpc_edit( response.transaction_id, HpsCPCData('9876543210', HpsTaxType.not_used) ) if edit_response is None: self.fail('Edit response is None') def visa_level_ii_tax_should_response_b(self): response = self.charge_service.charge( 111.34, 'usd', TestCreditCard.valid_visa, TestCardHolder.cert_holder_long_zip, cpc_req=True ) if response is None: self.fail('Response is None') self.assertEqual(response.response_code, '00') edit_response = self.charge_service.cpc_edit( response.transaction_id, HpsCPCData('', HpsTaxType.sales_tax, 1.0) ) if edit_response is None: self.fail('Edit response is None') def visa_level_ii_exempt_should_response_r(self): response = self.charge_service.charge( 123.45, 'usd', TestCreditCard.valid_visa, TestCardHolder.cert_holder_long_zip, cpc_req=True ) if response is None: self.fail('Response is None') self.assertEqual(response.response_code, '00') edit_response = self.charge_service.cpc_edit( response.transaction_id, HpsCPCData('', HpsTaxType.tax_exempt) ) if edit_response is None: self.fail('Edit response is None') def visa_level_ii_should_response_s(self): response = self.charge_service.charge( 133.56, 'usd', TestCreditCard.valid_visa, TestCardHolder.cert_holder_long_zip, cpc_req=True ) if response is None: self.fail('Response is None') self.assertEqual(response.response_code, '00') edit_response = self.charge_service.cpc_edit( response.transaction_id, HpsCPCData('9876543210', HpsTaxType.sales_tax, 1.0) ) if edit_response is None: self.fail('Edit response is None') def mastercard_level_ii_no_tax_should_response_s(self): response = self.charge_service.charge( 111.06, 'usd', TestCreditCard.valid_visa, TestCardHolder.cert_holder_long_zip, cpc_req=True ) if response is None: self.fail('Response is None') self.assertEqual(response.response_code, '00') edit_response = self.charge_service.cpc_edit( response.transaction_id, HpsCPCData('9876543210', HpsTaxType.not_used) ) if edit_response is None: self.fail('Edit response is None') def mastercard_level_ii_tax_no_po_should_response_s(self): response = self.charge_service.charge( 110.07, 'usd', TestCreditCard.valid_visa, TestCardHolder.cert_holder_long_zip, cpc_req=True ) if response is None: self.fail('Response is None') self.assertEqual(response.response_code, '00') edit_response = self.charge_service.cpc_edit( response.transaction_id, HpsCPCData('', HpsTaxType.sales_tax, 1.0) ) if edit_response is None: self.fail('Edit response is None') def mastercard_level_ii_tax_with_po_should_response_s(self): response = self.charge_service.charge( 110.08, 'usd', TestCreditCard.valid_visa, TestCardHolder.cert_holder_long_zip, cpc_req=True ) if response is None: self.fail('Response is None') self.assertEqual(response.response_code, '00') edit_response = self.charge_service.cpc_edit( response.transaction_id, HpsCPCData('9876543210', HpsTaxType.sales_tax, 1.0) ) if edit_response is None: self.fail('Edit response is None') def mastercard_level_ii_exempt_should_response_s(self): response = self.charge_service.charge( 111.09, 'usd', TestCreditCard.valid_visa, TestCardHolder.cert_holder_long_zip, cpc_req=True ) if response is None: self.fail('Response is None') self.assertEqual(response.response_code, '00') edit_response = self.charge_service.cpc_edit( response.transaction_id, HpsCPCData('9876543210', HpsTaxType.tax_exempt) ) if edit_response is None: self.fail('Edit response is None') def amex_level_ii_no_tax(self): response = self.charge_service.charge( 111.10, 'usd', TestCreditCard.valid_amex, TestCardHolder.cert_holder_short_zip_no_street, cpc_req=True ) if response is None: self.fail('response is None') self.assertEqual(response.response_code, '00') edit_response = self.charge_service.cpc_edit( response.transaction_id, HpsCPCData('9876543210', HpsTaxType.not_used) ) if edit_response is None: self.fail('Edit response is None') def amex_level_ii_tax_no_po(self): response = self.charge_service.charge( 110.11, 'usd', TestCreditCard.valid_amex, TestCardHolder.cert_holder_short_zip_no_street, cpc_req=True ) if response is None: self.fail('response is None') self.assertEqual(response.response_code, '00') edit_response = self.charge_service.cpc_edit( response.transaction_id, HpsCPCData('', HpsTaxType.sales_tax, 1.0) ) if edit_response is None: self.fail('Edit response is None') def amex_level_ii_tax_with_po(self): response = self.charge_service.charge( 110.12, 'usd', TestCreditCard.valid_amex, TestCardHolder.cert_holder_short_zip_no_street, cpc_req=True ) if response is None: self.fail('response is None') self.assertEqual(response.response_code, '00') edit_response = self.charge_service.cpc_edit( response.transaction_id, HpsCPCData('9876543210', HpsTaxType.sales_tax, 1.0) ) if edit_response is None: self.fail('Edit response is None') def amex_level_ii_exempt(self): response = self.charge_service.charge( 111.13, 'usd', TestCreditCard.valid_amex, TestCardHolder.cert_holder_short_zip_no_street, cpc_req=True ) if response is None: self.fail('response is None') self.assertEqual(response.response_code, '00') edit_response = self.charge_service.cpc_edit( response.transaction_id, HpsCPCData('9876543210', HpsTaxType.tax_exempt) ) if edit_response is None: self.fail('Edit response is None') """ returns """ def mastercard_should_return_ok(self): response = self.charge_service.refund( '15.15', 'usd', TestCreditCard.valid_mastercard) if response is None: self.fail('Response is None') self.assertEqual(response.response_code, '00') """ online void / reversal """ def visa_should_reverse_ok(self): response = self.charge_service.reverse( TestCreditCard.valid_visa, 17.01, "usd") if response is None: self.fail("Response is None") self.assertEqual(response.response_code, "00") def mastercard_should_reverse_ok(self): response = self.charge_service.reverse( self.partial_auth_transaction_id, 100.00, 'usd' ) if response is None: self.fail('Response is None') self.assertEqual(response.response_code, '00')