291 lines
8.6 KiB
Python
291 lines
8.6 KiB
Python
from .base import Resource
|
|
from ..constants.url import URL
|
|
import warnings
|
|
|
|
|
|
class Payment(Resource):
|
|
def __init__(self, client=None):
|
|
super(Payment, self).__init__(client)
|
|
self.base_url = URL.V1 + URL.PAYMENTS_URL
|
|
|
|
def fetch_all(self, data={}, **kwargs): # pragma: no cover
|
|
warnings.warn("Will be Deprecated in next release, use all",
|
|
DeprecationWarning)
|
|
return self.all(data, **kwargs)
|
|
|
|
def all(self, data={}, **kwargs):
|
|
"""
|
|
Fetch all Payment entities
|
|
|
|
Returns:
|
|
Dictionary of Payment data
|
|
"""
|
|
return super(Payment, self).all(data, **kwargs)
|
|
|
|
def fetch(self, payment_id, data={}, **kwargs):
|
|
"""
|
|
Fetch Payment for given Id
|
|
|
|
Args:
|
|
payment_id : Id for which payment object has to be retrieved
|
|
|
|
Returns:
|
|
Payment dict for given payment Id
|
|
"""
|
|
return super(Payment, self).fetch(payment_id, data, **kwargs)
|
|
|
|
def capture(self, payment_id, amount, data={}, **kwargs): # nosemgrep : python.lang.correctness.common-mistakes.default-mutable-dict.default-mutable-dict
|
|
"""
|
|
Capture Payment for given Id
|
|
|
|
Args:
|
|
payment_id : Id for which payment object has to be retrieved
|
|
amount : Amount for which the payment has to be retrieved
|
|
|
|
Returns:
|
|
Payment dict after getting captured
|
|
"""
|
|
url = "{}/{}/capture".format(self.base_url, payment_id)
|
|
data['amount'] = amount
|
|
return self.post_url(url, data, **kwargs)
|
|
|
|
def refund(self, payment_id, amount, data={}, **kwargs): # pragma: no cover # nosemgrep : python.lang.correctness.common-mistakes.default-mutable-dict.default-mutable-dict
|
|
"""
|
|
Refund Payment for given Id
|
|
|
|
Args:
|
|
payment_id : Id for which payment object has to be refunded
|
|
amount : Amount for which the payment has to be refunded
|
|
|
|
Returns:
|
|
Payment dict after getting refunded
|
|
"""
|
|
url = "{}/{}/refund".format(self.base_url, payment_id)
|
|
data['amount'] = amount
|
|
return self.post_url(url, data, **kwargs)
|
|
|
|
def transfer(self, payment_id, data={}, **kwargs):
|
|
"""
|
|
Create Transfer for given Payment Id
|
|
|
|
Args:
|
|
payment_id : Id for which payment object has to be transferred
|
|
|
|
Returns:
|
|
Payment dict after getting transferred
|
|
"""
|
|
url = "{}/{}/transfers".format(self.base_url, payment_id)
|
|
return self.post_url(url, data, **kwargs)
|
|
|
|
def transfers(self, payment_id, data={}, **kwargs):
|
|
"""
|
|
Fetches all transfer for given Payment Id
|
|
|
|
Args:
|
|
payment_id : Id for which all the transfers has to be fetched
|
|
|
|
Returns:
|
|
A collection (dict) of transfers
|
|
items : The key containing a list of 'transfer' entities
|
|
"""
|
|
url = "{}/{}/transfers".format(self.base_url, payment_id)
|
|
return self.get_url(url, data, **kwargs)
|
|
|
|
def bank_transfer(self, payment_id, data={}, **kwargs):
|
|
"""
|
|
Bank Transfer Entity for given Payment
|
|
|
|
Args:
|
|
payment_id : Id for which bank transfer entity has to be fetched
|
|
|
|
Returns:
|
|
Bank Transfer dict
|
|
"""
|
|
url = "{}/{}/bank_transfer".format(self.base_url, payment_id)
|
|
return self.get_url(url, data, **kwargs)
|
|
|
|
def upi_transfer(self, payment_id, data={}, **kwargs):
|
|
"""
|
|
UPI Transfer Entity for given Payment
|
|
|
|
Args:
|
|
payment_id : Id for which upi transfer entity has to be fetched
|
|
|
|
Returns:
|
|
UPI Transfer dict
|
|
"""
|
|
url = "{}/{}/upi_transfer".format(self.base_url, payment_id)
|
|
return self.get_url(url, data, **kwargs)
|
|
|
|
def refund(self, payment_id, data={}, **kwargs):
|
|
"""
|
|
Create a normal refund
|
|
|
|
Returns:
|
|
Payment dict after getting refund
|
|
"""
|
|
url = "{}/{}/refund".format(self.base_url, payment_id)
|
|
return self.post_url(url, data, **kwargs)
|
|
|
|
def fetch_multiple_refund(self, payment_id, data={}, **kwargs):
|
|
"""
|
|
Fetch multiple refunds for a payment
|
|
|
|
Returns:
|
|
refunds dict
|
|
"""
|
|
url = "{}/{}/refunds".format(self.base_url, payment_id)
|
|
return self.get_url(url, data, **kwargs)
|
|
|
|
def fetch_refund_id(self, payment_id, refund_id, **kwargs):
|
|
"""
|
|
Fetch multiple refunds for a payment
|
|
|
|
Returns:
|
|
Refund dict
|
|
"""
|
|
url = "{}/{}/refunds/{}".format(self.base_url, payment_id, refund_id)
|
|
return self.get_url(url, {}, **kwargs)
|
|
|
|
def edit(self, payment_id, data={}, **kwargs):
|
|
"""
|
|
Update the Payment
|
|
Args:
|
|
data : Dictionary having keys using which order have to be edited
|
|
'notes' : key value pair as notes
|
|
|
|
Returns:
|
|
Payment Dict which was edited
|
|
"""
|
|
url = '{}/{}'.format(self.base_url, payment_id)
|
|
|
|
return self.patch_url(url, data, **kwargs)
|
|
|
|
def fetchCardDetails(self, payment_id, **kwargs):
|
|
"""
|
|
Fetch Card Details of a Payment
|
|
|
|
Args:
|
|
payment_id : Id for which payment objects has to be retrieved
|
|
|
|
Returns:
|
|
Payment dict for given Order Id
|
|
"""
|
|
url = "{}/{}/card".format(self.base_url, payment_id)
|
|
return self.get_url(url, {}, **kwargs)
|
|
|
|
def fetchDownTime(self, **kwargs):
|
|
"""
|
|
Fetch Card Details of a Payment
|
|
|
|
Args:
|
|
payment_id : Id for which payment objects has to be retrieved
|
|
|
|
Returns:
|
|
Payment dict for given Order Id
|
|
"""
|
|
url = "{}/{}".format(self.base_url,'downtimes')
|
|
return self.get_url(url, {}, **kwargs)
|
|
|
|
def fetchDownTimeById(self, downtime_id, **kwargs):
|
|
"""
|
|
Fetch Payment Downtime Details by ID
|
|
|
|
Args:
|
|
payment_id : Id for which payment objects has to be retrieved
|
|
|
|
Returns:
|
|
Payment dict for given Order Id
|
|
"""
|
|
url = "{}/downtimes/{}".format(self.base_url, downtime_id)
|
|
return self.get_url(url, {}, **kwargs)
|
|
|
|
def createPaymentJson(self ,data={}, **kwargs):
|
|
"""
|
|
Create a Payment
|
|
|
|
Args:
|
|
payment_id : Id for which payment object has to be refunded
|
|
amount : Amount for which the payment has to be refunded
|
|
|
|
Returns:
|
|
Payment Dict which was created
|
|
"""
|
|
url = "{}/create/{}".format(self.base_url, 'json')
|
|
|
|
return self.post_url(url, data, **kwargs)
|
|
|
|
def createRecurring(self, data={}, **kwargs):
|
|
"""
|
|
Create Recurring Payments
|
|
Return:
|
|
Recurring Payments dict
|
|
"""
|
|
url = "{}/{}/recurring".format(self.base_url,'create')
|
|
return self.post_url(url, data, **kwargs)
|
|
|
|
def createUpi(self, data={}, **kwargs):
|
|
"""
|
|
Initiate a payment
|
|
Return:
|
|
Payments dict
|
|
"""
|
|
url = "{}/create/{}".format(self.base_url,'upi')
|
|
return self.post_url(url, data, **kwargs)
|
|
|
|
def validateVpa(self, data={}, **kwargs):
|
|
"""
|
|
Validate the VPA
|
|
Return:
|
|
Payments dict
|
|
"""
|
|
url = "{}/validate/{}".format(self.base_url,'vpa')
|
|
return self.post_url(url, data, **kwargs)
|
|
|
|
def fetchPaymentMethods(self, **kwargs):
|
|
"""
|
|
Fetch payment methods
|
|
Return:
|
|
Payments dict
|
|
"""
|
|
url = "/{}".format('methods')
|
|
return self.get_url(url, {}, **kwargs)
|
|
|
|
def otpGenerate(self, payment_id, data={}, **kwargs):
|
|
"""
|
|
Otp Generate
|
|
|
|
Args:
|
|
payment_id : Id for which upi transfer entity has to be fetched
|
|
|
|
Returns:
|
|
Otp Dict which was created
|
|
"""
|
|
url = "{}/{}/otp_generate".format(self.base_url, payment_id)
|
|
return self.post_url(url, data, **kwargs)
|
|
|
|
def otpSubmit(self, payment_id, data={}, **kwargs):
|
|
"""
|
|
Otp Submit
|
|
|
|
Args:
|
|
payment_id : Id for which upi transfer entity has to be fetched
|
|
|
|
Returns:
|
|
Otp Dict which was created
|
|
"""
|
|
url = "{}/{}/otp/submit".format(self.base_url, payment_id)
|
|
return self.post_url(url, data, **kwargs)
|
|
|
|
def otpResend(self, payment_id, data={}, **kwargs):
|
|
"""
|
|
Otp Resend
|
|
|
|
Args:
|
|
payment_id : Id for which upi transfer entity has to be fetched
|
|
|
|
Returns:
|
|
Otp Dict which was created
|
|
"""
|
|
url = "{}/{}/otp/resend".format(self.base_url, payment_id)
|
|
return self.post_url(url, data, **kwargs)
|