|
|
|
@ -4,7 +4,6 @@ from django.http import JsonResponse
|
|
|
|
|
import requests
|
|
|
|
|
from .decorators import *
|
|
|
|
|
from billing.models import *
|
|
|
|
|
import uuid
|
|
|
|
|
import base64
|
|
|
|
|
|
|
|
|
|
# Create your views here.
|
|
|
|
@ -30,9 +29,14 @@ def customer_products(request, *args, **kwargs):
|
|
|
|
|
|
|
|
|
|
@customer_login_required
|
|
|
|
|
def pricing(request, *args, **kwargs):
|
|
|
|
|
osimenu_basic = Item.objects.filter(title='OSIMENU BASIC').first()
|
|
|
|
|
osimenu_standard = Item.objects.filter(title='OSIMENU STANDARD').first()
|
|
|
|
|
osimenu_premium = Item.objects.filter(title='OSIMENU PREMIUM').first()
|
|
|
|
|
|
|
|
|
|
context = {
|
|
|
|
|
|
|
|
|
|
'osimenu_basic': osimenu_basic,
|
|
|
|
|
'osimenu_standard': osimenu_standard,
|
|
|
|
|
'osimenu_premium': osimenu_premium,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return render(request, 'pricing.html', context)
|
|
|
|
@ -48,8 +52,6 @@ def basic_auth_header(username, password):
|
|
|
|
|
return f"Basic {encoded_credentials}"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@customer_login_required
|
|
|
|
|
def initiate_checkout(request):
|
|
|
|
|
api_username = 'merchant.TEST06127800'
|
|
|
|
@ -58,10 +60,18 @@ def initiate_checkout(request):
|
|
|
|
|
merchant_name = 'Ositcom Sal'
|
|
|
|
|
|
|
|
|
|
customer = request.user.customerprofile
|
|
|
|
|
|
|
|
|
|
item_id = request.headers.get('X-Item-ID')
|
|
|
|
|
item = Item.objects.get(id=item_id)
|
|
|
|
|
|
|
|
|
|
order = Order.objects.create(status='None', customer=customer)
|
|
|
|
|
order.save()
|
|
|
|
|
order_id = order.order_id
|
|
|
|
|
|
|
|
|
|
order_item = OrderItem.objects.create(order=order, item=item)
|
|
|
|
|
order_item.save()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
payload = {
|
|
|
|
|
'apiOperation': 'INITIATE_CHECKOUT',
|
|
|
|
|
'apiUsername': api_username,
|
|
|
|
@ -115,6 +125,13 @@ def check_order_status(request, merchant_id, order_id):
|
|
|
|
|
if order_details.get('result') == 'SUCCESS':
|
|
|
|
|
order.status = 'Completed'
|
|
|
|
|
order.save()
|
|
|
|
|
order_items = OrderItem.objects.filter(order=order)
|
|
|
|
|
for order_item in order_items:
|
|
|
|
|
order_item.purchased_at = datetime.now()
|
|
|
|
|
recurring_cycle = 30
|
|
|
|
|
due_date = order_item.purchased_at + timedelta(days=recurring_cycle)
|
|
|
|
|
order_item.due_at = due_date
|
|
|
|
|
order_item.save()
|
|
|
|
|
return JsonResponse(order_details)
|
|
|
|
|
else:
|
|
|
|
|
error_message = 'Failed to retrieve order details: ' + response.text
|
|
|
|
@ -125,8 +142,4 @@ def check_order_status(request, merchant_id, order_id):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def webhook_handler(request):
|
|
|
|
|
|
|
|
|
|
project_type = ProjectType.objects.create(name='Hello')
|
|
|
|
|
|
|
|
|
|
return JsonResponse({'message': 'Webhook received and processed successfully'}, status=200)
|
|
|
|
|