Python (Django): я хочу, чтобы форма (код) платежа запускалась всякий раз, когда пользователь нажимает кнопку отправки, и сохранялась в БД только в случае успешной оплаты - PullRequest
0 голосов
/ 21 марта 2019

В настоящее время я использую DJANGO. Как я могу сделать так, чтобы форма оплаты (код) активировалась, когда пользователь нажал кнопку «Отправить», а также сохранить ее в БД после успешной оплаты.Пожалуйста, помогите мне .. Я пытался решить эти дни назад.

Вот мои модели.py

from django.db import models
class Promoting(models.Model):
    yourname= models.CharField(max_length=60)
    fathername= models.CharField(max_length=60)
    mothername= models.CharField(max_length=60)
    imagefield=models.ImageField(upload_to='postedimages')

    def __str__(self):
        return self.promoterauthor

Вот мои views.py

from django.shortcuts import render
from .models import Promoting
def homepage(request):
    if request.method == 'POST':
        yourname=request.POST.get('yourname')
        fathername=request.POST.get('fathername')
         mothername=request.POST.get(' mothername')
        imagefield=request.FILES['imagefield']       
 newdata=Promoting(promoterauthor=promoterauthor,websiteurl=websiteurl,tagline=tagline,imagefield=imagefield)
        newone.save()
        return render(request, 'success.html', {})
    else:
        return render(request, 'homepage.html', {})

Вот моя форма

<form action="{% url 'home' %}" method="POST" role="form" enctype="multipart/form-data class="contactForm">
            {% csrf_token %}

            <div class="form-row">
              <div class="form-group col-md-6">
                <input type="text" name="yourname" id="yourname" class="form-control"  placeholder="Youur username"  required>
              </div>
              <div class="form-group col-md-6">
                <input type="" class="form-control" name="fathername" id="fathername"  placeholder="Your Website"  required>
              </div>
            </div>
            <div class="form-group">
              <input type="text" class="form-control" name="mothername" id="mothername" placeholder="Add a Tag line"  required>
            </div>
            <div class="form-group">
              <input type="file" class="form-control" name="imagefield" id="imagefield" placeholder="Your image"  accept="image/*" required>
            </div>
            <div class="text-center"><button type="submit">Send Message</button></div>
</form>

Форма успешно отправляется в базу данных, а также в мой платежный шлюз (Rave by flutterwave.COM работает хорошо). N Мне нужен только способ связать друг с другом

Точно, я хочу, чтобы форма оплаты активировалась после нажатия кнопки отправки, и я хочу, чтобы данные сохранялись в БД только в случае успешной оплаты. Пожалуйста, помогите фрагмент кода из моегоплатежный шлюз также работает при нажатии кнопки оплаты ... Вот код оплаты

<form>
    <script src="https://api.ravepay.co/flwv3-pug/getpaidx/api/flwpbf-inline.js"></script>
    <button type="button" onClick="payWithRave()">Pay Now</button>
</form>

<script>
    const API_publicKey = "FLWPUBK-152e7e9e17c0f7e985f9fee5838eafcc-X";

    function payWithRave() {
        var x = getpaidSetup({
            PBFPubKey: API_publicKey,
            customer_email: "user@example.com",
            amount:5,
            customer_phone: "234099940409",
            currency: "USD",
            txref: "rave-123456",
            meta: [{
                metaname: "flightID",
                metavalue: "AP1234"
            }],
            onclose: function() {},
            callback: function(response) {
                var txref = response.tx.txRef; // collect txRef 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.chargeResponseCode == "00" ||
                    response.tx.chargeResponseCode == "0"
                ) {
                    // redirect to a success page
                } else {
                    // redirect to a failure page.
                }

                x.close(); // use this to close the modal immediately after payment.
            }
        });
    }
</script>

Это то, что генерируется кодом платежа, когда оплачивается щелчок

...