/
views.py
61 lines (48 loc) · 2 KB
/
views.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from unicodedata import name
from django.shortcuts import render
import razorpay
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
razorpay_client = razorpay.Client(auth=("rzp_test_Xsjdhgf32uy45twjher", "Jwmhegfhg6587987MCH"))
@csrf_exempt
def create_subscription(request):
if request.method == "POST":
amount = int(request.POST['price'])
product_name = request.POST['product_name']
plan_id = request.POST['plan_id']
razorpay_subscription_res = razorpay_client.subscription.create({
'plan_id': plan_id,
'total_count': 30,
'addons': [{
'item': {
'name': product_name,
'currency': 'INR',
"amount": int(amount) * 100,
}
}],
})
response_data = {
"callback_url": "http://127.0.0.1:8000/payment/callback",
"razorpay_key": "rzp_test_Xsjdhgf32uy45twjher",
"order": razorpay_subscription_res,
"product_name": product_name
}
print(response_data)
return JsonResponse(response_data)
@csrf_exempt
def subscription_callback(request):
if request.method == "POST":
print(request.POST)
if "razorpay_signature" in request.POST:
payment_verification = razorpay_client.utility.verify_subscription_payment_signature(request.POST)
if payment_verification:
return JsonResponse({"res":"Subscription is active"})
# Logic to perform is payment is successful
# Create subscription logic
else:
return JsonResponse({"res":"failed"})
# Logic to perform is payment is unsuccessful
# def verify_signature(response_data):
# client = razorpay.Client(auth=(settings.RAZORPAY_KEY_ID, settings.RAZORPAY_KEY_SECRET))
# res_var = client.utility.verify_subscription_payment_signature(response_data)
# return res_var