import json
from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt
from django.http import JsonResponse
import razorpay
from django.conf import settings

client = razorpay.Client(auth=(settings.RAZORPAY_API_KEY, settings.RAZORPAY_API_SECRET))


def payment_page(request):
    return render(request, 'payments/payment_form.html', {
        'razorpay_key': settings.RAZORPAY_API_KEY
    })


@csrf_exempt
def create_order(request):
    if request.method == 'POST':
        data = json.loads(request.body)
        amount = int(data.get("amount")) * 100  # Convert to paise
        payment = client.order.create({
            "amount": amount,
            "currency": "INR",
            "payment_capture": 1
        })
        return JsonResponse({'order_id': payment['id']})

from django.http import JsonResponse, HttpResponseBadRequest
from django.views.decorators.csrf import csrf_exempt
import razorpay
from django.views.decorators.csrf import csrf_exempt
from django.http import JsonResponse, HttpResponseBadRequest
import razorpay

from django.conf import settings
import razorpay
import json

client = razorpay.Client(auth=(settings.RAZORPAY_API_KEY, settings.RAZORPAY_API_SECRET))


@csrf_exempt
def verify_razorpay_payment(request):
    if request.method == 'POST':
        data = json.loads(request.body)
        # data = request.POST  # ✅ Don't use json.loads()

        print("DEBUG POST DATA:", data)

        try:
            client.utility.verify_payment_signature({
                'razorpay_order_id': data.get('razorpay_order_id'),
                'razorpay_payment_id': data.get('razorpay_payment_id'),
                'razorpay_signature': data.get('razorpay_signature')
            })
            return JsonResponse({'success': True, 'message': 'Signature verified'})
        except razorpay.errors.SignatureVerificationError:
            return JsonResponse({'success': False, 'message': 'Signature mismatch'})
    return HttpResponseBadRequest("Invalid request method")




from django.views.decorators.csrf import csrf_exempt
from django.http import JsonResponse, HttpResponseBadRequest
import json
import razorpay

@csrf_exempt
def verify_razorpay_payment(request):
    if request.method == 'POST':
        data = json.loads(request.body)
        try:
            client.utility.verify_payment_signature({
                'razorpay_order_id': data['razorpay_order_id'],
                'razorpay_payment_id': data['razorpay_payment_id'],
                'razorpay_signature': data['razorpay_signature']
            })
            return JsonResponse({'success': True})
        except razorpay.errors.SignatureVerificationError:
            return JsonResponse({'success': False, 'message': 'Signature mismatch'})
    else:
        return HttpResponseBadRequest("Invalid request method")



from django.shortcuts import render, redirect
from django.conf import settings
import razorpay

client = razorpay.Client(auth=(settings.RAZORPAY_API_KEY, settings.RAZORPAY_API_SECRET))

def pay_link_form(request):
    return render(request, 'payments/payment_link_form.html')

def create_payment_link(request):
    if request.method == "POST":
        amount = int(request.POST.get("amount")) * 100  # ₹ to paise
        name = request.POST.get("name")
        email = request.POST.get("email")
        contact = request.POST.get("contact")

        response = client.payment_link.create({
            "amount": amount,
            "currency": "INR",
            "description": "Recharge via Razorpay Payment Link",
            "customer": {
                "name": name,
                "email": email,
                "contact": contact
            },
            "notify": {
                "sms": True,
                "email": True
            },
            "callback_url": request.build_absolute_uri('testapp/payment-success/'),
            "callback_method": "get",

# -----------------------------------------------
            # 🖼️ BRANDING SECTION
            "reference_id": f"viralpe_{name}_{amount}",
            "options": {
                "theme": {
                    "color": "#7C2D12"  # ViralPe maroon
                },
                "display": {
                    "logo": "https://pmt.viralpe.com/static/Hyper_files/logo.png",  # Your hosted logo
                    "name": "ViralPe"
                }
            }
# -----------------------------------------------

        })

        return redirect(response["short_url"])

def payment_success(request):
    return render(request, 'payments/payment_success.html')
