def get_transaction_details(transId):
	merchantAuth = apicontractsv1.merchantAuthenticationType()
	merchantAuth.name = constants.apiLoginId
	merchantAuth.transactionKey = constants.transactionKey

	transactionDetailsRequest = apicontractsv1.getTransactionDetailsRequest()
	transactionDetailsRequest.merchantAuthentication = merchantAuth
	transactionDetailsRequest.transId = "40000276420"

	transactionDetailsController = getTransactionDetailsController(transactionDetailsRequest)

	transactionDetailsController.execute()

	transactionDetailsResponse = transactionDetailsController.getresponse()

	if transactionDetailsResponse is not None:
		if transactionDetailsResponse.messages.resultCode == apicontractsv1.messageTypeEnum.Ok:
			print('Successfully got transaction details!')

			print('Transaction Id : %s' % transactionDetailsResponse.transaction.transId)
			print('Transaction Type : %s' % transactionDetailsResponse.transaction.transactionType)
			print('Transaction Status : %s' % transactionDetailsResponse.transaction.transactionStatus)
			print('Auth Amount : %s' % transactionDetailsResponse.transaction.authAmount)
			print('Settle Amount : %s' % transactionDetailsResponse.transaction.settleAmount)
			if hasattr(transactionDetailsResponse.transaction, 'tax') == True:
				print('Tax : %s' % transactionDetailsResponse.transaction.tax.amount)

			if transactionDetailsResponse.messages:
				print('Message Code : %s' % transactionDetailsResponse.messages.message[0]['code'].text)
				print('Message Text : %s' % transactionDetailsResponse.messages.message[0]['text'].text)
		else:
			if transactionDetailsResponse.messages:
				print('Failed to get transaction details.\nCode:%s \nText:%s' % (transactionDetailsResponse.messages.message[0]['code'].text,transactionDetailsResponse.messages.message[0]['text'].text))

	return transactionDetailsResponse
Example #2
0
 def testGetTransactionDetails(self):
     
     gettransactiondetailsrequest = apicontractsv1.getTransactionDetailsRequest()
     gettransactiondetailsrequest.merchantAuthentication = self.merchantAuthentication
     gettransactiondetailsrequest.transId ='2252271173' #update valid transaction id
     gettransactiondetailscontroller = getTransactionDetailsController(gettransactiondetailsrequest)
     gettransactiondetailscontroller.execute()
     response =  gettransactiondetailscontroller.getresponse()
     self.assertEquals('Ok', response.messages.resultCode) 
def get_transaction_details(transId):
    merchantAuth = apicontractsv1.merchantAuthenticationType()
    merchantAuth.name = constants.apiLoginId
    merchantAuth.transactionKey = constants.transactionKey

    transactionDetailsRequest = apicontractsv1.getTransactionDetailsRequest()
    transactionDetailsRequest.merchantAuthentication = merchantAuth
    transactionDetailsRequest.transId = "40000276420"

    transactionDetailsController = getTransactionDetailsController(
        transactionDetailsRequest)

    transactionDetailsController.execute()

    transactionDetailsResponse = transactionDetailsController.getresponse()

    if transactionDetailsResponse is not None:
        if transactionDetailsResponse.messages.resultCode == apicontractsv1.messageTypeEnum.Ok:
            print('Successfully got transaction details!')

            print('Transaction Id : %s' %
                  transactionDetailsResponse.transaction.transId)
            print('Transaction Type : %s' %
                  transactionDetailsResponse.transaction.transactionType)
            print('Transaction Status : %s' %
                  transactionDetailsResponse.transaction.transactionStatus)
            print('Auth Amount : %s' %
                  transactionDetailsResponse.transaction.authAmount)
            print('Settle Amount : %s' %
                  transactionDetailsResponse.transaction.settleAmount)
            if hasattr(transactionDetailsResponse.transaction, 'tax') == True:
                print('Tax : %s' %
                      transactionDetailsResponse.transaction.tax.amount)
            if hasattr(transactionDetailsResponse.transaction, 'profile'):
                print('Customer Profile Id : %s' % transactionDetailsResponse.
                      transaction.profile.customerProfileId)

            if transactionDetailsResponse.messages is not None:
                print(
                    'Message Code : %s' %
                    transactionDetailsResponse.messages.message[0]['code'].text
                )
                print(
                    'Message Text : %s' %
                    transactionDetailsResponse.messages.message[0]['text'].text
                )
        else:
            if transactionDetailsResponse.messages is not None:
                print('Failed to get transaction details.\nCode:%s \nText:%s' %
                      (transactionDetailsResponse.messages.message[0]['code'].
                       text, transactionDetailsResponse.messages.message[0]
                       ['text'].text))

    return transactionDetailsResponse
Example #4
0
 def testgetTransactionDetails(self):    
     gettransactiondetailsrequest = apicontractsv1.getTransactionDetailsRequest()
     gettransactiondetailsrequest.merchantAuthentication = self.merchantAuthentication
     transactionID = self.testchargeCreditCard()
     gettransactiondetailsrequest.transId = transactionID #update valid transaction id
     gettransactiondetailscontroller = getTransactionDetailsController(gettransactiondetailsrequest)
     gettransactiondetailscontroller.execute()
     response =  gettransactiondetailscontroller.getresponse()
     if hasattr(response, 'messages') == True:
         if hasattr(response.messages, 'resultCode') == True:
             self.assertEquals('Ok', response.messages.resultCode)   
Example #5
0
 def testgetTransactionDetails(self):    
     gettransactiondetailsrequest = apicontractsv1.getTransactionDetailsRequest()
     gettransactiondetailsrequest.merchantAuthentication = self.merchantAuthentication
     transactionID = self.testchargeCreditCard()
     gettransactiondetailsrequest.transId = transactionID #update valid transaction id
     gettransactiondetailscontroller = GetTransactionDetailsController(gettransactiondetailsrequest)
     gettransactiondetailscontroller.execute()
     response =  gettransactiondetailscontroller.getresponse()
     if hasattr(response, 'messages') == True:
         if hasattr(response.messages, 'resultCode') == True:
             self.assertEquals('Ok', response.messages.resultCode)   
Example #6
0
    def get_transaction_detail(self, transaction_id):
        self.transaction = apicontractsv1.getTransactionDetailsRequest()
        self.transaction.merchantAuthentication = self.merchant_auth
        self.transaction.transId = transaction_id

        self.controller = getTransactionDetailsController(self.transaction)
        self.controller.execute()

        response = self.controller.getresponse()

        if response.messages.resultCode == apicontractsv1.messageTypeEnum.Ok:
            return response.transaction
Example #7
0
    def retrieve(self, trans_id):

        merchantAuth = apicontractsv1.merchantAuthenticationType()
        merchantAuth.name = self.merchant_id
        merchantAuth.transactionKey = self.merchant_key

        transactionDetailsRequest = apicontractsv1.getTransactionDetailsRequest()
        transactionDetailsRequest.merchantAuthentication = merchantAuth
        transactionDetailsRequest.transId = trans_id

        transactionDetailsController = getTransactionDetailsController(transactionDetailsRequest)

        transactionDetailsController.execute()

        transactionDetailsResponse = transactionDetailsController.getresponse()

        if transactionDetailsResponse is not None:
            if transactionDetailsResponse.messages.resultCode == apicontractsv1.messageTypeEnum.Ok:
                print('Successfully got transaction details!')

                print('Transaction Id : %s' % transactionDetailsResponse.transaction.transId)
                print('Transaction Type : %s' % transactionDetailsResponse.transaction.transactionType)
                print('Transaction Status : %s' % transactionDetailsResponse.transaction.transactionStatus)
                print('Auth Amount : %.2f' % transactionDetailsResponse.transaction.authAmount)
                print('Settle Amount : %.2f' % transactionDetailsResponse.transaction.settleAmount)
                if hasattr(transactionDetailsResponse.transaction, 'tax') == True:
                    print('Tax : %s' % transactionDetailsResponse.transaction.tax.amount)
                if hasattr(transactionDetailsResponse.transaction, 'profile'):
                    print('Customer Profile Id : %s' % transactionDetailsResponse.transaction.profile.customerProfileId)

                if transactionDetailsResponse.messages is not None:
                    print('Message Code : %s' % transactionDetailsResponse.messages.message[0]['code'].text)
                    print('Message Text : %s' % transactionDetailsResponse.messages.message[0]['text'].text)
            else:
                if transactionDetailsResponse.messages is not None:
                    print('Failed to get transaction details.\nCode:%s \nText:%s' % (transactionDetailsResponse.messages.message[0]['code'].text,transactionDetailsResponse.messages.message[0]['text'].text))
        try:
            return {
                'id': transactionDetailsResponse.transaction.transId,
                'amount': transactionDetailsResponse.transaction.authAmount,
                'status': transactionDetailsResponse.transaction.transactionStatus
            }
        except BaseException:
            return {
                'error': 'Could not find details: {}'.format(transactionDetailsResponse.messages.message[0]['code'])
            }
Example #8
0
    def get_transaction_detail(self, transaction_id):
        """
            Return complete transaction details using AuthorizeNet transaction id. For more information
            visit https://developer.authorize.net/api/reference/#transaction-reporting-get-transaction-details

            Arguments:
                transaction_id: transaction id received from AuthorizeNet Notification.
            Returns:
                Complete transaction detail
        """
        merchant_auth = apicontractsv1.merchantAuthenticationType()
        merchant_auth.name = self.merchant_auth_name
        merchant_auth.transactionKey = self.transaction_key

        transaction_details_request = apicontractsv1.getTransactionDetailsRequest()
        transaction_details_request.merchantAuthentication = merchant_auth
        transaction_details_request.transId = transaction_id

        transaction_details_controller = getTransactionDetailsController(transaction_details_request)
        transaction_details_controller.execute()

        transaction_details_response = transaction_details_controller.getresponse()
        if transaction_details_response is not None:
            if transaction_details_response.messages.resultCode == apicontractsv1.messageTypeEnum.Ok:
                logger.info('Successfully got Authorizenet transaction details')

                if transaction_details_response.messages is not None:
                    logger.info('Message Code : %s', transaction_details_response.messages.message[0]['code'].text)
                    logger.info('Message Text : %s', transaction_details_response.messages.message[0]['text'].text)
            else:
                logger.error(
                    'Unable to get Authorizenet transaction detail using transaction_id [%s].', transaction_id)
                if transaction_details_response.messages is not None:
                    logger.error(
                        'Failed to get transaction details.\nCode:%s \nText:%s',
                        transaction_details_response.messages.message[0]['code'].text,
                        transaction_details_response.messages.message[0]['text'].text
                    )
                raise MissingTransactionDetailError
        return transaction_details_response
Example #9
0
    def fetch_transaction_status(self, transaction):
        """
        Query payment processor for a transaction, and update the status
        of the silver transaction accordingly.

        :param transaction: A Silver transaction with a AuthorizeNet payment method, in Pending state.
        :return: True if the transaction status was updated, False otherwise.
        """

        logger.info("transaction data: %s", transaction.data)

        payment_processor = get_instance(transaction.payment_processor)

        if not payment_processor == self:
            return False

        if transaction.state != transaction.States.Pending:
            return False

        tx_id = transaction.data.get('authorizenet_id')

        logger.info('tx id %s', {'tx_id': tx_id})

        if not self.test_transaction_id_valid(tx_id):
            logger.warning(
                'Transaction id %s is invalid. API does not support recovering lost transactions, will need to be manually entered.',
                {
                    'authorizenet_id': tx_id,
                })

            return False

        req = apicontractsv1.getTransactionDetailsRequest()
        req.merchantAuthentication = self.merchantAuth
        req.transId = str(transaction.data.get('authorizenet_id'))

        status = transaction.data.get('status')

        transaction_controller = getTransactionDetailsController(req)

        try:
            transaction_controller.execute()
        except Exception as e:
            logger.warning('Error in request create transaction %s',
                           {'exception': str(e)})

        response = transaction_controller.getresponse()

        have_resp = response is not None
        resp_okay = response.messages.resultCode == apicontractsv1.messageTypeEnum.Ok

        if have_resp:
            t_resp = response.transaction
            t_resp_msgs = hasattr(t_resp, 'messages') is True

            if resp_okay:
                status = str(t_resp.responseCode)
            else:
                if t_resp_msgs:
                    status = response.messages.message[0]['code'].text

        transaction.data.update({
            'status': status,
        })
        transaction.save()

        return self._transition_silver_transaction_state(
            transaction, response, status)
Example #10
0
def get_transaction_details(ds, **kwargs):
    t_obj = kwargs['ti'].xcom_pull(task_ids='get_transaction_list')

    t_list = t_obj['transaction_ids']
    t_u_list = t_obj['transaction_unsettled_ids']

    transaction_details_list = []
    transaction_unsettled_details_list = []
    print("Length of transactions >>>>>> ", len(t_list))
    print("Length of unsettled transactions >>>>>> ", len(t_u_list))
    for t in t_list:
        transactionDetailsRequest = apicontractsv1.getTransactionDetailsRequest()
        transactionDetailsRequest.merchantAuthentication = merchantAuth
        transactionDetailsRequest.transId = str(t)

        transactionDetailsController = getTransactionDetailsController(transactionDetailsRequest)
        transactionDetailsController.setenvironment(ENV)

        transactionDetailsController.execute()

        transactionDetailsResponse = transactionDetailsController.getresponse()

        if transactionDetailsResponse is not None:
            if transactionDetailsResponse.messages.resultCode == apicontractsv1.messageTypeEnum.Ok:
                print('Successfully got transaction details!')

                t = {
                    "transaction_id": str(transactionDetailsResponse.transaction.transId),
                    "transaction_type": str(transactionDetailsResponse.transaction.transactionType),
                    "transaction_status": str(transactionDetailsResponse.transaction.transactionStatus),
                    "auth_amount": float(transactionDetailsResponse.transaction.authAmount),
                    "settlement_amount": float(transactionDetailsResponse.transaction.settleAmount),
                    "date": str(transactionDetailsResponse.transaction.submitTimeUTC)
                }

                if hasattr(transactionDetailsResponse.transaction, 'tax'):
                    t['tax'] = float(transactionDetailsResponse.transaction.tax.amount)
                if hasattr(transactionDetailsResponse.transaction, 'profile'):
                    t['customer_profile_id'] = str(transactionDetailsResponse.transaction.profile.customerProfileId)

                transaction_details_list.append(t)

                if transactionDetailsResponse.messages is not None:
                    print('Message Code : %s' % transactionDetailsResponse.messages.message[0].code)
                    print('Message Text : %s' % transactionDetailsResponse.messages.message[0].text)
            else:
                if transactionDetailsResponse.messages is not None:
                    print('Failed to get transaction details.\nCode:%s \nText:%s' % (
                        transactionDetailsResponse.messages.message[0].code,
                        transactionDetailsResponse.messages.message[0].text))

    for t in t_u_list:
        transactionDetailsRequest = apicontractsv1.getTransactionDetailsRequest()
        transactionDetailsRequest.merchantAuthentication = merchantAuth
        transactionDetailsRequest.transId = str(t)

        transactionDetailsController = getTransactionDetailsController(transactionDetailsRequest)
        transactionDetailsController.setenvironment(ENV)

        transactionDetailsController.execute()

        transactionDetailsResponse = transactionDetailsController.getresponse()

        if transactionDetailsResponse is not None:
            if transactionDetailsResponse.messages.resultCode == apicontractsv1.messageTypeEnum.Ok:
                print('Successfully got transaction details for unsettled!')

                t = {
                    "transaction_id": str(transactionDetailsResponse.transaction.transId),
                    "transaction_type": str(transactionDetailsResponse.transaction.transactionType),
                    "transaction_status": str(transactionDetailsResponse.transaction.transactionStatus),
                    "auth_amount": float(transactionDetailsResponse.transaction.authAmount),
                    "settlement_amount": float(transactionDetailsResponse.transaction.settleAmount),
                    "date": str(transactionDetailsResponse.transaction.submitTimeUTC)
                }

                if hasattr(transactionDetailsResponse.transaction, 'tax'):
                    t['tax'] = float(transactionDetailsResponse.transaction.tax.amount)
                if hasattr(transactionDetailsResponse.transaction, 'profile'):
                    t['customer_profile_id'] = str(transactionDetailsResponse.transaction.profile.customerProfileId)

                transaction_unsettled_details_list.append(t)

                if transactionDetailsResponse.messages is not None:
                    print('Message Code : %s' % transactionDetailsResponse.messages.message[0].code)
                    print('Message Text : %s' % transactionDetailsResponse.messages.message[0].text)
            else:
                if transactionDetailsResponse.messages is not None:
                    print('Failed to get transaction details.\nCode:%s \nText:%s' % (
                        transactionDetailsResponse.messages.message[0].code,
                        transactionDetailsResponse.messages.message[0].text))

    return {'transaction_details': transaction_details_list,
            'transaction_unsettled_details': transaction_unsettled_details_list}
Example #11
0
from authorizenet import apicontractsv1
from authorizenet.apicontrollers import *
from decimal import *

merchantAuth = apicontractsv1.merchantAuthenticationType()
merchantAuth.name = '5KP3u95bQpv'
merchantAuth.transactionKey = '4Ktq966gC55GAX7S'

transactionDetailsRequest = apicontractsv1.getTransactionDetailsRequest()
transactionDetailsRequest.merchantAuthentication = merchantAuth
transactionDetailsRequest.transId = "2239287784"

transactionDetailsController = getTransactionDetailsController(transactionDetailsRequest)

transactionDetailsController.execute()

transactionDetailsResponse = transactionDetailsController.getresponse()

if transactionDetailsResponse is not None:
	if transactionDetailsResponse.messages.resultCode == apicontractsv1.messageTypeEnum.Ok:
		print('Successfully got transaction details!')

		print('Transaction Id : %s' % transactionDetailsResponse.transaction.transId)
		print('Transaction Type : %s' % transactionDetailsResponse.transaction.transactionType)
		print('Transaction Status : %s' % transactionDetailsResponse.transaction.transactionStatus)
		print('Auth Amount : %s' % transactionDetailsResponse.transaction.authAmount)
		print('Settle Amount : %s' % transactionDetailsResponse.transaction.settleAmount)

		if transactionDetailsResponse.messages:
			print('Message Code : %s' % transactionDetailsResponse.messages.message[0].code)
			print('Message Text : %s' % transactionDetailsResponse.messages.message[0].text)