def subscription(self, data): """ Method to generate checkout url with calendar :param data: order data :return: api response """ if self.api.api_protocol != '2.0': raise Exception('This method allowed only for v2.0') path = '/checkout/url/' recurring_data = data.get('recurring_data', '') subscription_data = { 'subscription': 'Y', 'recurring_data': { 'start_time': recurring_data.get('start_time', ''), 'amount': recurring_data.get('amount', ''), 'every': recurring_data.get('every', ''), 'period': recurring_data.get('period', ''), 'readonly': recurring_data.get('readonly', ''), } } helper.check_data(subscription_data['recurring_data']) self._validate_recurring_data(subscription_data['recurring_data']) subscription_data.update(data) params = self._required(subscription_data) result = self.api.post(path, data=params, headers=self.__headers__) return self.response(result)
def api_status(self, data): """ Method for checking order status :param data: order data :return: api response """ params = {"order_id": data.get("order_id", "")} helper.check_data(params) params.update(data) return "/status/order_id/", params
def api_atol_logs(self, data): """ Method for getting order atol logs :param data: order data :return: api response """ params = {"order_id": data.get("order_id", "")} helper.check_data(params) params.update(data) self.api.request_type = "json" return "/get_atol_logs/", params
def atol_logs(self, data): """ Method for getting order atol logs :param data: order data :return: api response """ path = '/get_atol_logs/' params = {'order_id': data.get('order_id', '')} helper.check_data(params) params.update(data) result = self.api.post(path, data=params, headers=self.__headers__) return utils.from_json(result).get('response')
def status(self, data): """ Method for checking order status :param data: order data :return: api response """ path = '/status/order_id/' params = {'order_id': data.get('order_id', '')} helper.check_data(params) params.update(data) result = self.api.post(path, data=params, headers=self.__headers__) return self.response(result)
def api_capture(self, data): """ Method for capturing order :param data: capture order data :return: api response """ params = { "order_id": data.get("order_id", ""), "amount": data.get("amount", ""), "currency": data.get("currency", ""), } helper.check_data(params) params.update(data) return "/capture/order_id/", params
def api_reverse(self, data): """ Method to reverse order :param data: reverse order data :return: api response """ params = { "order_id": data.get("order_id", ""), "amount": data.get("amount", ""), "currency": data.get("currency", ""), } helper.check_data(params) params.update(data) return "/reverse/order_id/", params
def api_step_two(self, data): """ Accept purchase Pcidss step two :param data: order data :return: payment result """ params = { "order_id": data.get("order_id", ""), "pares": data.get("pares", ""), "md": data.get("md", ""), } helper.check_data(params) params.update(data) return "/3dsecure_step2/", params
def api_transaction_list(self, data): """ Method for getting order transaction list :param data: order data :return: api response """ params = {"order_id": data.get("order_id", "")} helper.check_data(params) params.update(data) """ only json allowed all other methods returns 500 error """ self.api.request_type = "json" return "/transaction_list/", params
def transaction_list(self, data): """ Method for getting order transaction list :param data: order data :return: api response """ path = '/transaction_list/' params = {'order_id': data.get('order_id', '')} helper.check_data(params) params.update(data) """ only json allowed all other methods returns 500 error """ self.api.request_type = 'json' result = self.api.post(path, data=params, headers=self.__headers__) return self.response(result)
def step_two(self, data): """ Accept purchase Pcidss step two :param data: order data :return: payment result """ path = '/3dsecure_step2/' params = { 'order_id': data.get('order_id', ''), 'pares': data.get('pares', ''), 'md': data.get('md', '') } helper.check_data(params) params.update(data) result = self.api.post(path, data=params, headers=self.__headers__) return self.response(result)
def capture(self, data): """ Method for capturing order :param data: capture order data :return: api response """ path = '/capture/order_id/' params = { 'order_id': data.get('order_id', ''), 'amount': data.get('amount', ''), 'currency': data.get('currency', '') } helper.check_data(params) params.update(data) result = self.api.post(path, data=params, headers=self.__headers__) return self.response(result)
def api_settlement(self, data): """ Method for create split order :param data: split order data :return: api response """ if self.api.api_protocol != "2.0": raise Exception("This method allowed only for v2.0") params = { "order_type": data.get("order_type", "settlement"), "order_id": data.get("order_id") or helper.generate_order_id(), "operation_id": data.get("operation_id", ""), "receiver": data.get("receiver", []), } helper.check_data(params) params.update(data) return "/settlement/", params
def api_reports(self, data): """ Method to get payment reports from date range :param data: date range :return: api response """ params = { "date_from": data.get("date_from", ""), "date_to": data.get("date_to", ""), } helper.check_data(params) """ from api only one response if data invalid "General Decline" """ self._validate_reports_date(params) params.update(data) return "/reports/", params
def api_p2pcredit(self, data): """ Method P2P card credit :param data: order data :return: api response """ self.order_id = data.get("order_id") or helper.generate_order_id() order_desc = data.get("order_desc") or helper.get_desc(self.order_id) params = { "order_id": self.order_id, "order_desc": order_desc, "amount": data.get("amount", ""), "currency": data.get("currency", ""), } helper.check_data(params) params.update(data) return "/p2pcredit/", params
def _required(self, data): """ Required data to send :param data: :return: parameters to send """ self.order_id = data.get("order_id", helper.generate_order_id()) order_desc = data.get("order_desc", helper.get_desc(self.order_id)) params = { "order_id": self.order_id, "order_desc": order_desc, "amount": data.get("amount", ""), "currency": data.get("currency", ""), } helper.check_data(params) params.update(data) return params
def _required(self, data): """ Required data to send :param data: :return: parameters to send """ self.order_id = data.get('order_id') or helper.generate_order_id() order_desc = data.get('order_desc') or helper.get_desc(self.order_id) params = { 'order_id': self.order_id, 'order_desc': order_desc, 'amount': data.get('amount', ''), 'currency': data.get('currency', '') } helper.check_data(params) params.update(data) return params
def api_recurring(self, data): """ Method for recurring payment :param data: order data :return: api response """ self.order_id = data.get("order_id") or helper.generate_order_id() order_desc = data.get("order_desc") or helper.get_desc(self.order_id) params = { "order_id": self.order_id, "order_desc": order_desc, "amount": data.get("amount", ""), "currency": data.get("currency", ""), "rectoken": data.get("rectoken", ""), } helper.check_data(params) params.update(data) return "/recurring/", params
def reports(self, data): """ Method to get payment reports from date range :param data: date range :return: api response """ path = '/reports/' params = { 'date_from': data.get('date_from', ''), 'date_to': data.get('date_to', '') } helper.check_data(params) """ from api only one response if data invalid "General Decline" """ self._validate_reports_date(params) params.update(data) result = self.api.post(path, data=params, headers=self.__headers__) return self.response(result)
def p2pcredit(self, data): """ Method P2P card credit :param data: order data :return: api response """ path = '/p2pcredit/' self.order_id = data.get('order_id') or helper.generate_order_id() order_desc = data.get('order_desc') or helper.get_desc(self.order_id) params = { 'order_id': self.order_id, 'order_desc': order_desc, 'amount': data.get('amount', ''), 'currency': data.get('currency', '') } helper.check_data(params) params.update(data) result = self.api.post(path, data=params, headers=self.__headers__) return self.response(result)
def api_step_one(self, data): """ Accept purchase Pcidss step one :param data: order data :return: payment result or step two data """ self.order_id = data.get("order_id") or helper.generate_order_id() order_desc = data.get("order_desc") or helper.get_desc(self.order_id) params = { "order_id": self.order_id, "order_desc": order_desc, "currency": data.get("currency", ""), "amount": data.get("amount", ""), "card_number": data.get("card_number", ""), "cvv2": data.get("cvv2", ""), "expiry_date": data.get("expiry_date", ""), } helper.check_data(params) params.update(data) return "/3dsecure_step1/", params
def settlement(self, data): """ Method for create split order :param data: split order data :return: api response """ if self.api.api_protocol != '2.0': raise Exception('This method allowed only for v2.0') path = '/settlement/' params = { 'order_type': data.get('order_type', 'settlement'), 'order_id': data.get('order_id') or helper.generate_order_id(), 'operation_id': data.get('operation_id', ''), 'receiver': data.get('receiver', []) } helper.check_data(params) params.update(data) result = self.api.post(path, data=params, headers=self.__headers__) return self.response(result)
def recurring(self, data): """ Method for recurring payment :param data: order data :return: api response """ path = '/recurring/' self.order_id = data.get('order_id') or helper.generate_order_id() order_desc = data.get('order_desc') or helper.get_desc(self.order_id) params = { 'order_id': self.order_id, 'order_desc': order_desc, 'amount': data.get('amount', ''), 'currency': data.get('currency', ''), 'rectoken': data.get('rectoken', '') } helper.check_data(params) params.update(data) result = self.api.post(path, data=params, headers=self.__headers__) return self.response(result)
def subscription(self, data): """ Method to generate checkout url with calendar :param data: order data data = { "currency": "UAH", -> currency ('UAH', 'RUB', 'USD') "amount": 10000, -> amount of the order (int) "recurring_data": { "every": 1, -> frequency of the recurring order (int) "amount": 10000, -> amount of the recurring order (int) "period": 'month', -> period of the recurring order ('day', 'month', 'year') "start_time": '2020-07-24', -> start date of the recurring order ('YYYY-MM-DD') "readonly": 'y', -> possibility to change parameters of the recurring order by user ('y', 'n') "state": 'y' -> default state of the recurring order after opening url of the order ('y', 'n') } } :return: api response """ if self.api.api_protocol != '2.0': raise Exception('This method allowed only for v2.0') path = '/checkout/url/' recurring_data = data.get('recurring_data', '') subscription_data = { 'subscription': 'Y', 'recurring_data': { 'start_time': recurring_data.get('start_time', ''), 'amount': recurring_data.get('amount', ''), 'every': recurring_data.get('every', ''), 'period': recurring_data.get('period', ''), 'readonly': recurring_data.get('readonly', ''), 'state': recurring_data.get('state', '') } } helper.check_data(subscription_data['recurring_data']) self._validate_recurring_data(subscription_data['recurring_data']) subscription_data.update(data) params = self._required(subscription_data) result = self.api.post(path, data=params, headers=self.__headers__) return self.response(result)
def step_one(self, data): """ Accept purchase Pcidss step one :param data: order data :return: payment result or step two data """ path = '/3dsecure_step1/' self.order_id = data.get('order_id') or helper.generate_order_id() order_desc = data.get('order_desc') or helper.get_desc(self.order_id) params = { 'order_id': self.order_id, 'order_desc': order_desc, 'currency': data.get('currency', ''), 'amount': data.get('amount', ''), 'card_number': data.get('card_number', ''), 'cvv2': data.get('cvv2', ''), 'expiry_date': data.get('expiry_date', '') } helper.check_data(params) params.update(data) result = self.api.post(path, data=params, headers=self.__headers__) return self.response(result)
def api_subscription(self, data): """ Method to generate checkout url with calendar :param data: order data data = { "currency": "UAH", -> currency ('UAH', 'RUB', 'USD') "amount": 10000, -> amount of the order (int) "recurring_data": { "every": 1, -> frequency of the recurring order (int) "amount": 10000, -> amount of the recurring order (int) "period": 'month', -> period of the recurring order ('day', 'month', 'year') "start_time": '2020-07-24', -> start date of the recurring order ('YYYY-MM-DD') "readonly": 'y', -> possibility to change parameters of the recurring order by user ('y', 'n') "state": 'y' -> default state of the recurring order after opening url of the order ('y', 'n') } } """ if self.api.api_protocol != "2.0": raise Exception("This method allowed only for v2.0") recurring_data = data.get("recurring_data", "") subscription_data = { "subscription": "Y", "recurring_data": { "start_time": recurring_data.get("start_time", ""), "amount": recurring_data.get("amount", ""), "every": recurring_data.get("every", ""), "period": recurring_data.get("period", ""), "readonly": recurring_data.get("readonly", ""), "state": recurring_data.get("state", ""), }, } helper.check_data(subscription_data["recurring_data"]) self._validate_recurring_data(subscription_data["recurring_data"]) subscription_data.update(data) return "/checkout/url/", self._required(subscription_data)