Skip to main content

package for plone getpaid to hook up the checkout with Paymentech

Project description

GetPaid Paymentech Interface
=======================================

Store Specific Processor Setting Tests
This is only for Authorization and Mark for Capture
We are doing the tests of Section A and C of
the Orbital Certification Guidelines
--------------------------------------
STORE CREATION:

>>> from getpaid.core import interfaces
>>> from zope.app.annotation import IAttributeAnnotatable
>>> from zope.interface import implements
>>> class Store:
... implements(interfaces.IStore, IAttributeAnnotatable)
>>> store = Store()

LINE ITEM CREATION:

>>> from getpaid.core import order, cart, item
>>> from cPickle import loads, dumps
>>> order_ids = []
>>> abc = item.LineItem()
>>> abc.name = 'abc'
>>> abc.quantity = 1

>>> def createOrderId():
... order_id = str(random.randint( 2**10, 2**30 ))
... while order_id in order_ids:
... order_id = str(random.randint( 2**10, 2**30 ))
... order_ids.append(order_id)
... return order_id

PAYMENT PROCESSOR CREATION:

>>> from getpaid.paymentech.paymentech import PaymentechAdapter
>>> processor = PaymentechAdapter(store)
>>> processor.options.merchant_id = "700000007587"
>>> processor.options.terminal_id = "001"
>>> processor.server = processor._sites['Test1']

=======================================
SECTION A: Authorization only transactions
=======================================
Generic function to test the Authorization:

>>> from getpaid.paymentech.paymentech import createAuthorizeXMLFile
>>> from getpaid.paymentech.paymentech import getElement
>>> import random
>>> from Products.PloneGetPaid.browser.checkout import BillingInfo
>>> from datetime import date
>>> def test_authorize(credit_card_type, credit_card_number, cc_cvc, amount, my_order):
... my_cart = cart.ShoppingCart()
... abc.cost = amount
... my_cart['abc'] = abc
... my_order.shopping_cart = loads(dumps(my_cart))
... payment_infos = BillingInfo(my_order)
... payment_infos.name_on_card = "Test Cardholder"
... payment_infos.phone_number = "1234567890"
... payment_infos.cc_expiration = date(2009, 2, 1)
... payment_infos.credit_card_type = credit_card_type
... payment_infos.credit_card = credit_card_number
... payment_infos.cc_cvc = cc_cvc
... data = createAuthorizeXMLFile('A', processor.options, my_order, payment_infos)
... return processor.process(data, timeout=None)

TEST 1:
>>> credit_card_type = "Visa"
>>> credit_card_number = "4788250000028291"
>>> cc_cvc = "111"
>>> amount = 30.00
>>> order1 = order.Order()
>>> order1.order_id = order_id = createOrderId()
>>> result = test_authorize(credit_card_type, credit_card_number, cc_cvc, amount, order1)
>>> res_order_id = getElement(result.result_resp, 'OrderID')
>>> order_id == res_order_id
True
>>> res_resp_code = getElement(result.result_resp, 'RespCode')
>>> res_resp_code == "00"
True
>>> res_trans_ref_num1 = result.trans_ref_num

TEST 2:
>>> credit_card_type = "Visa"
>>> credit_card_number = "4788250000028291"
>>> cc_cvc = "222"
>>> amount = 38.01
>>> order2 = order.Order()
>>> order2.order_id = order_id = createOrderId()
>>> result = test_authorize(credit_card_type, credit_card_number, cc_cvc, amount, order2)
>>> res_order_id = getElement(result.result_resp, 'OrderID')
>>> order_id == res_order_id
True
>>> res_resp_code = getElement(result.result_resp, 'RespCode')
>>> res_resp_code == "05"
True
>>> res_trans_ref_num2 = result.trans_ref_num

TEST 3:
>>> credit_card_type = "Mastercard"
>>> credit_card_number = "5454545454545454"
>>> cc_cvc = "333"
>>> amount = 41.00
>>> order3 = order.Order()
>>> order3.order_id = order_id = createOrderId()
>>> result = test_authorize(credit_card_type, credit_card_number, cc_cvc, amount, order3)
>>> res_order_id = getElement(result.result_resp, 'OrderID')
>>> order_id == res_order_id
True
>>> res_resp_code = getElement(result.result_resp, 'RespCode')
>>> res_resp_code == "00"
True
>>> res_trans_ref_num3 = result.trans_ref_num

TEST 4:
>>> credit_card_type = "Mastercard"
>>> credit_card_number = "5454545454545454"
>>> cc_cvc = "666"
>>> amount = 11.02
>>> order4 = order.Order()
>>> order4.order_id = order_id = createOrderId()
>>> result = test_authorize(credit_card_type, credit_card_number, cc_cvc, amount, order4)
>>> res_order_id = getElement(result.result_resp, 'OrderID')
>>> order_id == res_order_id
True
>>> res_resp_code = getElement(result.result_resp, 'RespCode')
>>> res_resp_code == "01"
True
>>> res_trans_ref_num4 = result.trans_ref_num

TEST 5:
>>> credit_card_type = "American Express"
>>> credit_card_number = "371449635398431"
>>> cc_cvc = "1111"
>>> amount = 1055.00
>>> order5 = order.Order()
>>> order5.order_id = order_id = createOrderId()
>>> result = test_authorize(credit_card_type, credit_card_number, cc_cvc, amount, order5)
>>> res_order_id = getElement(result.result_resp, 'OrderID')
>>> order_id == res_order_id
True
>>> res_resp_code = getElement(result.result_resp, 'RespCode')
>>> res_resp_code == "00"
True
>>> res_trans_ref_num5 = result.trans_ref_num

TEST 6:
>>> credit_card_type = "American Express"
>>> credit_card_number = "371449635398431"
>>> cc_cvc = "555"
>>> amount = 75.00
>>> order6 = order.Order()
>>> order6.order_id = order_id = createOrderId()
>>> result = test_authorize(credit_card_type, credit_card_number, cc_cvc, amount, order6)
>>> res_order_id = getElement(result.result_resp, 'OrderID')
>>> order_id == res_order_id
True
>>> res_resp_code = getElement(result.result_resp, 'RespCode')
>>> res_resp_code == "00"
True
>>> res_trans_ref_num6 = result.trans_ref_num

TEST 7:
>>> credit_card_type = "Discover"
>>> credit_card_number = "6011000995500000"
>>> cc_cvc = "666"
>>> amount = 10.00
>>> order7 = order.Order()
>>> order7.order_id = order_id = createOrderId()
>>> result = test_authorize(credit_card_type, credit_card_number, cc_cvc, amount, order7)
>>> res_order_id = getElement(result.result_resp, 'OrderID')
>>> order_id == res_order_id
True
>>> res_resp_code = getElement(result.result_resp, 'RespCode')
>>> res_resp_code == "00"
True
>>> res_trans_ref_num7 = result.trans_ref_num

TEST 8:
>>> credit_card_type = "Discover"
>>> credit_card_number = "6011000995500000"
>>> cc_cvc = "444"
>>> amount = 63.03
>>> order8 = order.Order()
>>> order8.order_id = order_id = createOrderId()
>>> result = test_authorize(credit_card_type, credit_card_number, cc_cvc, amount, order8)
>>> res_order_id = getElement(result.result_resp, 'OrderID')
>>> order_id == res_order_id
True
>>> res_resp_code = getElement(result.result_resp, 'RespCode')
>>> res_resp_code == "04"
True
>>> res_trans_ref_num8 = result.trans_ref_num

=======================================
SECTION C: Mark for Capture
=======================================
Generic function to test the Capture:

>>> from getpaid.paymentech.paymentech import createCaptureXMLFile
>>> def test_capture(order, trans_ref_num, amount):
... data = createCaptureXMLFile(processor.options, order, trans_ref_num, amount)
... return processor.process(data, timeout=None)

TEST A-1:
>>> amount = 30.00
>>> result = test_capture(order1, res_trans_ref_num1, amount)
>>> res_resp_code = getElement(result.result_resp, 'ProcStatus')
>>> res_resp_code == "0"
True
>>> res_trans_ref_num = result.trans_ref_num

TEST A-3:
>>> amount = 41.00
>>> result = test_capture(order3, res_trans_ref_num3, amount)
>>> res_resp_code = getElement(result.result_resp, 'ProcStatus')
>>> res_resp_code == "0"
True
>>> res_trans_ref_num = result.trans_ref_num

TEST A-5:
>>> amount = 1055.00
>>> result = test_capture(order5, res_trans_ref_num5, amount)
>>> res_resp_code = getElement(result.result_resp, 'ProcStatus')
>>> res_resp_code == "0"
True
>>> res_trans_ref_num = result.trans_ref_num

TEST A-7:
>>> amount = 10.00
>>> result = test_capture(order7, res_trans_ref_num7, amount)
>>> res_resp_code = getElement(result.result_resp, 'ProcStatus')
>>> res_resp_code == "0"
True
>>> res_trans_ref_num = result.trans_ref_num

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

getpaid.paymentech-0.2.tar.gz (7.0 kB view details)

Uploaded Source

File details

Details for the file getpaid.paymentech-0.2.tar.gz.

File metadata

File hashes

Hashes for getpaid.paymentech-0.2.tar.gz
Algorithm Hash digest
SHA256 e09e4bd3210f04c284b7534bd270073173cccbeaf2b032bdc3ad1824951ae634
MD5 d7115b75a876b05967ad1e0139313910
BLAKE2b-256 b1453257bb21f8faff91c0e451aa16b579ee76fddd299c963c43b3e8c7069e37

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page