Source code for terminusgps.authorizenet.subscriptions

from authorizenet import apicontractsv1, apicontrollers

from terminusgps.authorizenet.auth import get_merchant_auth
from terminusgps.authorizenet.controllers import execute_controller


[docs] def create_subscription(subscription_obj: apicontractsv1.ARBSubscriptionType): """ `ARBCreateSubscriptionRequest <https://developer.authorize.net/api/reference/index.html#recurring-billing-create-a-subscription>`_. :param subscription_obj: An Authorizenet subscription object. :type subscription_obj: :py:obj:`~authorizenet.apicontractsv1.ARBSubscriptionType` :returns: An Authorizenet ARBCreateSubscription response. :rtype: :py:obj:`dict` """ request = apicontractsv1.ARBCreateSubscriptionRequest( merchantAuthentication=get_merchant_auth(), subscription=subscription_obj ) return execute_controller(apicontrollers.ARBCreateSubscriptionController(request))
[docs] def get_subscription(subscription_id: int, include_transactions: bool = True): """ `ARBGetSubscriptionRequest <https://developer.authorize.net/api/reference/index.html#recurring-billing-get-subscription>`_. :param subscription_id: An Authorizenet subscription id. :type subscription_id: :py:obj:`int` :param include_transactions: Whether or not to include the subscription transaction list in the response. Default is :py:obj:`True`. :type include_transactions: :py:obj:`bool` :returns: An Authorizenet ARBGetSubscription response. :rtype: :py:obj:`dict` """ request = apicontractsv1.ARBGetSubscriptionRequest( merchantAuthentication=get_merchant_auth(), subscriptionId=str(subscription_id), includeTransactions=str(include_transactions).lower(), ) return execute_controller(apicontrollers.ARBGetSubscriptionController(request))
[docs] def get_subscription_status(subscription_id: int): """ `ARBGetSubscriptionStatusRequest <https://developer.authorize.net/api/reference/index.html#recurring-billing-get-subscription-status>`_. :param subscription_id: An Authorizenet subscription id. :type subscription_id: :py:obj:`int` :returns: An Authorizenet ARBGetSubscriptionStatus response. :rtype: :py:obj:`dict` """ request = apicontractsv1.ARBGetSubscriptionStatusRequest( merchantAuthentication=get_merchant_auth(), subscriptionId=str(subscription_id) ) return execute_controller( apicontrollers.ARBGetSubscriptionStatusController(request) )
[docs] def update_subscription( subscription_id: int, subscription_obj: apicontractsv1.ARBSubscriptionType ): """ `ARBUpdateSubscriptionRequest <https://developer.authorize.net/api/reference/index.html#recurring-billing-update-a-subscription>`_. :param subscription_id: An Authorizenet subscription id. :type subscription_id: :py:obj:`int` :param subscription_obj: An Authorizenet subscription object. :type subscription_obj: :py:obj:`~authorizenet.apicontractsv1.ARBSubscriptionType` :returns: An Authorizenet ARBUpdateSubscription response. :rtype: :py:obj:`dict` """ request = apicontractsv1.ARBUpdateSubscriptionRequest( merchantAuthentication=get_merchant_auth(), subscriptionId=str(subscription_id), subscription=subscription_obj, ) return execute_controller(apicontrollers.ARBUpdateSubscriptionController(request))
[docs] def cancel_subscription(subscription_id: int): """ `ARBCancelSubscriptionRequest <https://developer.authorize.net/api/reference/index.html#recurring-billing-cancel-a-subscription>`_. :param subscription_id: An Authorizenet subscription id. :type subscription_id: :py:obj:`int` :returns: An Authorizenet ARBCancelSubscription response. :rtype: :py:obj:`dict` """ request = apicontractsv1.ARBCancelSubscriptionRequest( merchantAuthentication=get_merchant_auth(), subscriptionId=str(subscription_id) ) return execute_controller(apicontrollers.ARBCancelSubscriptionController(request))