Как связать платеж с заказом в django
я пытаюсь что-то сделать.
Я пытаюсь сделать в своем коде что-то, что после подтверждения платежа, заказ будет сохранен в базе данных.
я следовал этому руководству но я заблудился, потому что мы используем разные платежные шлюзы
он использует stripe, я использую flutterwave
мои коды
javascript
document.addEventListener("DOMContentLoaded", (event) => {
// Add an event listener for when the user clicks the submit button to pay
document.getElementById("submit").addEventListener("click", (e) => {
e.preventDefault();
const PBFKey = "xxxxxxxxxxxxxxxxxxxx"; // paste in the public key from your dashboard here
const txRef = ''+Math.floor((Math.random() * 1000000000) + 1); //Generate a random id for the transaction reference
const email = document.getElementById('email').value;
var fullname= document.getElementById('fullName').value;
var address1= document.getElementById('custAdd').value;
var address2= document.getElementById('custAdd2').value;
var country= document.getElementById('country').value;
var state= document.getElementById('state').value;
var address1= document.getElementById('postCode').value;
const amount= document.getElementById('total').value;
var CSRF_TOKEN = '{{ csrf_token }}';
const payload = {
'firstName': $('#fullName').val(),
'address': $('#custAdd').val() + ', ' + $('#custAdd2').val() + ', ' + $('#state').val() + ', ' + $('#country').val(),
'postcode': $('#postCode').val(),
'email': $('#email').val(),
}
getpaidSetup({
PBFPubKey: PBFKey,
customer_email: email,
amount:"{{cart.get_total_price}}",
currency: "USD", // Select the currency. leaving it empty defaults to NGN
txref: txRef, // Pass your UNIQUE TRANSACTION REFERENCE HERE.
onclose: function() {},
callback: function(response) {
flw_ref = response.tx.flwRef;// collect flwRef returned and pass to a server page to complete status check.
console.log("This is the response returned after a charge", response);
if(response.tx.chargeResponse =='00' || response.tx.chargeResponse == '0') {
// redirect to a success page
} else {
// redirect to a failure page.
}
}
});
});
});
просмотров
def add(request):
cart = Cart(request)
if request.POST.get('action') == 'post':
order_key = request.POST.get('txRef')
user_id = request.user.id
carttotal = cart.get_total_price()
# Check if order exists
if Order.objects.filter(order_key=order_key).exists():
pass
else:
order = Order.objects.create(user_id='user_id', full_name='name', address1='add1',
address2='add2', total_paid=carttotal, order_key=order_key)
order_id = order.pk
for item in cart:
OrderItem.objects.create(order_id=order_id, product=item['product'], price=item['price'], quantity=item['qty'])
response = JsonResponse({'success': 'Return something'})
return response