HTML表单:
JS代码: var button = document.querySelector('#submit-button');
braintree.dropin.create({
authorization: 'your_client_token',
container: '#payment-form'
}, function(createErr, instance) {
button.addEventListener('click', function(e) {
e.preventDefault();
instance.requestPaymentMethod(function (err, payload) {
if (err) {
console.log('Error', err);
} else {
$.post('/checkout', {
'payment_method_nonce': payload.nonce
}, function(res) {
if (res.success) {
window.location.href = "/payment-done/";
} else {
console.log(res.message);
}
});
}
});
});
});
Django视图: def payment(request): if request.method == 'POST': nonce = request.POST.get("payment_method_nonce", None) result = gateway.transaction.sale({ "amount": "10.00", "payment_method_nonce": nonce, "options": { "submit_for_settlement": True } }) if result.is_success: return JsonResponse({'success': True}) else: return JsonResponse({'success': False, 'message': result.message}) else: return render(request, 'payment.html')
Django路由: from django.urls import path