Отправка данных с кнопки PayPal на Flask - PullRequest
0 голосов
/ 06 марта 2020

Я новичок в Flask. Я знаю, как отправить данные из формы в flask, но когда я пытаюсь отправить данные о продукте из кассы. js с помощью PayPal, в приложение flask ничего не отправляется. Я пробовал много способов, и я искал слишком много. Мой код ниже. Заранее спасибо!

Это код Html

<div class="pricingTable-sign-up">

                            <input type="hidden" id="price" name="price" value=110.00/>



                            <button type="submit"><div id="paypal-button"></div></button>



                            <script src="https://www.paypalobjects.com/api/checkout.js"></script>

                        </div>

Это код Javascript, который отправляет информацию о транзакции flask.

<script>

    var CREATE_PAYMENT_URL  = 'https://127.0.0.1:5000/payment';
    var EXECUTE_PAYMENT_URL = 'https://127.0.0.1:5000/execute';

    paypal.Button.render({

        env: 'sandbox', // Or 'sandbox'

        commit: true, // Show a 'Pay Now' button

        payment: function() {
            return paypal.request.post(CREATE_PAYMENT_URL).then(function(data) {
                return data.paymentID;
            });
        },

        onAuthorize: function(data) {
            return paypal.request.post(EXECUTE_PAYMENT_URL, {
                paymentID: data.paymentID,
                payerID:   data.payerID
            }).then(function(res) {

                console.log(res.success)
                // The payment is complete!
                // You can now show a confirmation message to the customer
            });
        }

    }, '#paypal-button');
</script>

Вот код python. Когда я нажимаю кнопку flask, я не получаю никакого значения от HTML, поэтому, возможно, есть другой способ, которого я не знаю

@app.route('/payment', methods=["GET", "POST"])
def payment():

    price = request.form.get('price')

    print("###############################", price)

    payment = paypalrestsdk.Payment({
        "intent": "sale",
        "payer": {
            "payment_method": "paypal"},
        "redirect_urls": {
            "return_url": "http://localhost:3000/payment/execute",
            "cancel_url": "http://localhost:3000/"},
        "transactions": [{
            "item_list": {
                "items": [{
                    "name": "testitem",
                    "sku": "12345",
                    "price": price,
                    "currency": "USD",
                    "quantity": 1}]},
            "amount": {
                "total": price,
                "currency": "USD"},
            "description": "This is the payment transaction description."}]})

    if payment.create():
        print('Payment success!')
    else:
        print(payment.error)

    return jsonify({'paymentID' : payment.id})

...