Mengurai pembayaran Paypal

saya sedang membuat pembayaran menggunakan PayPal. Saya telah mengerjakan ini selama dua hari dan sepertinya tidak tahu cara memasukkan detail pembayaran ke DB saya

ini adalah kesalahan yang saya dapatkan saat mencoba mengurai JSON:

Uncaught SyntaxError: Unexpected token o in JSON at position 1
at JSON.parse (<anonymous>)
at https://######.com/######/quote.php?fname=######&lname=#####&email=########%40#########.com&tel=######&lot=7920&building=912&lotID=1:106:26
at e.n.dispatch (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:11814)
at e.n.resolve (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:10871)
at e.n.dispatch (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:12180)
at e.n.resolve (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:10871)
at https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:11681
at e.n.dispatch (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:11814)
at e.n.resolve (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:10871)
at e.n.dispatch (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:12180)
Error: Unexpected token o in JSON at position 1
at fr.error (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:62962)
at Object.<anonymous> (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:70732)
at JSON.parse (<anonymous>)
at o (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:70591)
at xr (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:70744)
at Fr.u.on (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:75415)
at Fr (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:75552)
at https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:81671
at Function.e.try (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:14344)
at https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:81468
Error: Unexpected token o in JSON at position 1
at fr.error (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:62962)
at Array.<anonymous> (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:70732)
at JSON.parse (<anonymous>)
at o (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:70591)
at xr (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:70744)
at Fr.u.on (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:75415)
at Fr (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:75552)
at https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:81671
at Function.e.try (https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:14344)
at https://www.paypal.com/sdk/js?client-id=AQ4DspGAAbWgC9Iw0KoI0kWjiEx5xM_gqpAmw1gxFIUha1YDtA_TTmMCaYJH6j58L3HvIlNkN4hD7Wdc&disable-funding=credit,card:2:81468

ini skrip tombol paypal saya

<script>
    
    paypal.Buttons({
        style:{
            color:'blue',
            shape:'pill'
        },createOrder: function (data, actions) {
    var cost = parseFloat(document.getElementsByClassName('totamount')[0].innerText.replace('$',''));
    var address = document.getElementsByClassName('product-name')[0].innerText;
    return actions.order.create({
        purchase_units : [{
            amount: {
                name: '####### ######',
                description: "##### #####at: " + address,
                value: cost
            }
        }]
    });
},
onApprove: function (data, actions) {
    return actions.order.capture().then(function (details) {
        console.log(details)
        var paydetails = JSON.parse(details);
        var payee = paydetails.payer.name.given_name + " " + paydetails.payer.name.surname;
        var payid = paydetails.id;
        console.log(payee);
        console.log(payid);
        //document.getElementsByClassName('cart-total')[0].innerHTML= JSON.stringify(details)
        //window.location.replace("https://######.com/######/paymentmade.php?uid=<?php echo $userid ?>")
    })
},
onCancel: function (data) {
    window.location.replace("https://#######.com/#######/quote.php?fname=<?php echo $fname ?> &lname=<?php echo $lname ?>&email=<?php echo $email ?>&tel=<?php echo $tel ?>&lot=<?php echo $lot ?>&building=<?php echo $building ?>&lotID=<?php echo $lotid ?>")
}
    }).render('#paypal-payment-button');</script>
<script src="include/script.js"></script>

Saya sudah mencoba penguraian Json, dan saya telah membaca beberapa stackoverflow lain yang menunjuk pada penggunaan hal-hal seperti data.payID dan hal-hal seperti itu tetapi itu hanya mengembalikan kesalahan yang tidak ditentukan.


person skivecore    schedule 06.03.2021    source sumber
comment
Apa yang ditampilkan detail log konsol.toString() di Chrome?   -  person onStackOverflowListener    schedule 06.03.2021


Jawaban (1)


bagaimana cara mendapatkan detail pembayaran untuk dimasukkan ke DB saya

Jika Anda perlu menyimpan rincian pembayaran dalam database, Anda tidak boleh menggunakan actions.order.capture() di sisi klien.

Sebaliknya, beralihlah ke integrasi server yang tepat.

Buat dua rute di server Anda, satu untuk 'Buat Pesanan' dan satu lagi untuk 'Tangkap Pesanan', didokumentasikan di sini. Rute ini seharusnya hanya mengembalikan data JSON (tanpa HTML atau teks). Yang terakhir harus (jika berhasil) menyimpan rincian pembayaran di database Anda sebelum melakukan pengembalian (khususnya purchase_units[0].payments.captures[0].id, ID transaksi PayPal)

Pasangkan kedua rute tersebut dengan alur persetujuan berikut: https://developer.paypal.com/demo/checkout/#/pattern/server

person Preston PHX    schedule 06.03.2021