Django: лучший способ выдать ошибку подтверждения депозита в Stripe ACH - PullRequest
0 голосов
/ 29 мая 2018

Я работаю над проверкой Stripe ACH, в которой пользователь вводит два числа, соответствующих депозитам на их банковском счете.Какой лучший способ сделать ошибку в поле html, когда они вводят значение, которое не является целым числом от 1 до 99. Должно ли это быть сделано на стороне javascript (jquery?) Или, на мой взгляд.Моя интуиция говорит мне, что это нужно сделать в представлении, но я не знаю, как передать сообщение об ошибке пользователю.Должен ли я создать форму для этого?Я бы так не думал, так как я не сохраняю вещи в базу данных.

Мысли?

Мой взгляд в Django

def ach_payment_verify_updateview(request):
    request.stripe_id = request._post['token']
    print('hi')
    try:
    if not isinstance(request._post['deposit_1'], int):
    ### some kind of error message here
    print(request._post['deposit_1'])
    print(request._post['deposit_2'])

Мой текущий код JavaScript.

document.querySelector('form.ach-payment-verify-form').addEventListener('submit', function(e) {
    e.preventDefault();
  var nextUrl = paymentForm.attr('data-next-url');
  var deposit_1 = document.getElementById('deposit-1').value;
  var deposit_2 = document.getElementById('deposit-2').value;
  stripeDepositHandler(nextUrl, deposit_1, deposit_2)
  });
function stripeDepositHandler(nextUrl, deposit_1, deposit_2){
  var paymentMethodEndpoint = '/billing/ach-payment-verify/create/'
  var data = {
    'token': 'ba_1CWoJSFAasdfafsdReMae',
    'deposit_1':deposit_1,
    'deposit_2':deposit_2,
  }
  $.ajax({
      data: data,
      url: paymentMethodEndpoint,
      method: "POST",
      success: function(data){
        var successMsg = data.message || "Success! Your account has been verified."
        $("form.ach-payment-verify-form")[0].reset();
        if (nextUrl){
          successMsg = successMsg + "<br/><br/><i class='fa fa-spin fa-spinner'></i> Redirecting..." //<i class> - 'font awesome'
        }
        if ($.alert){  // if alert message is installed
          $.alert(successMsg)
        } else {
          alert("")
        } 
        redirectToNext(nextUrl, 1500)
      },
      error: function(error){
        console.log(error)
      }
  })
}

1 Ответ

0 голосов
/ 11 февраля 2019
Please try this validation in your code : 
document.querySelector('form.ach-payment-verify-form').addEventListener('submit', function(e) {
    e.preventDefault();
  var nextUrl = paymentForm.attr('data-next-url');
  var deposit_1 = document.getElementById('deposit-1').value;
  var deposit_2 = document.getElementById('deposit-2').value;

      if (Number.isInteger(deposit_1) && Number.isInteger(deposit_2)) {
          stripeDepositHandler(nextUrl, deposit_1, deposit_2)
      }
      else {
          console.log("Please enter valide number. Thank You !")
      }
...