Ini adalah pertanyaan tindak lanjut ke: PHP: Cara mudah untuk memulai checkout PayPal?
Jadi, masalah saya adalah saya menentukan url pengembalian. Namun, setelah membayar dengan PayPal, saya berakhir di layar yang mengatakan:
Anda baru saja menyelesaikan pembayaran Anda. XXXX, Anda baru saja menyelesaikan pembayaran. ID transaksi Anda untuk pembayaran ini adalah: XXXXXXXXXXXXX.
Kami akan mengirim email konfirmasi ke [email protected]. Transaksi ini akan muncul pada pernyataan Anda sebagai PAYPAL.
Go to PayPal account overview
Saya membutuhkannya untuk tidak menampilkan layar ini dan langsung ke URL kembali. Saya sudah:
- Setel variabel "kembali"
- Atur variabel "rm" ke: 2 (yang sesuai dengan panduan = " browser pembeli diarahkan ke URL kembali dengan menggunakan metode POST, dan semua variabel pembayaran termasuk ")
Bahkan, inilah seluruh bentuk saya:
<form method="post" action="https://www.sandbox.paypal.com/cgi-bin/webscr">
<input type="hidden" value="_xclick" name="cmd">
<input type="hidden" value="[email protected]" name="business">
<!-- <input type="hidden" name="undefined_quantity" value="1" /> -->
<input type="hidden" value="Order at The Greek Merchant:<Br />Goldfish Flock BLG<br />" name="item_name">
<input type="hidden" value="NA" name="item_number">
<input type="hidden" value="22.16" name="amount">
<input type="hidden" value="5.17" name="shipping">
<input type="hidden" value="0" name="discount_amount">
<input type="hidden" value="0" name="no_shipping">
<input type="hidden" value="No comments" name="cn">
<input type="hidden" value="USD" name="currency_code">
<input type="hidden" value="http://XXX/XXX/XXX/paypal/return" name="return">
<input type="hidden" value="2" name="rm">
<input type="hidden" value="11255XXX" name="invoice">
<input type="hidden" value="US" name="lc">
<input type="hidden" value="PP-BuyNowBF" name="bn">
<input type="submit" value="Place Order!" name="finalizeOrder" id="finalizeOrder" class="submitButton">
</form>
Adakah yang tahu bagaimana saya bisa mendapatkannya kembali secara otomatis? Atau, bagaimana saya mendapatkan hasil pembayaran kembali ke situs web saya sehingga saya dapat memperbarui database? Apa itu IPN?
Jawaban:
Anda harus mengaktifkan pengembalian otomatis di akun PayPal Anda, jika tidak maka akan mengabaikan
return
bidang.Dari dokumentasi (diperbarui untuk mencerminkan tata letak baru Jan 2019):
IPN untuk pemberitahuan pembayaran instan. Ini akan memberi Anda informasi yang lebih dapat diandalkan / berguna daripada apa yang akan Anda dapatkan dari pengembalian otomatis.
Dokumentasi untuk IPN ada di sini: https://www.x.com/sites/default/files/ipnguide.pdf
Dokumentasi Online untuk IPN: https://developer.paypal.com/docs/classic/ipn/gs_IPN/
Prosedur umumnya adalah Anda melewatkan
notify_url
parameter dengan permintaan, dan mengatur halaman yang menangani dan memvalidasi pemberitahuan IPN, dan PayPal akan mengirim permintaan ke halaman itu untuk memberi tahu Anda ketika pembayaran / pengembalian uang / dll. melewati. Halaman pengendali IPN itu kemudian akan menjadi tempat yang tepat untuk memperbarui database untuk menandai pesanan yang telah dibayarkan.sumber
My Selling Tools
Langkah 4) Klik diWebsite Preferences
bawahSelling Online
return
bidang." Setiapreturn
URL parameter Anda lulus ke kasir akan merasa terhormat dan menimpa Auto Kembali URL (atau ketiadaan) dikonfigurasi dalam profil akun PayPal penjual, tetapi jika mereka tidak memiliki Auto Kembali diaktifkan sana, pembeli akan perlu untuk mengklik secara manual masa lalu akhir checkout untuk diarahkan ke URL itu, daripada diarahkan secara otomatis.Formulir sampel menggunakan PHP untuk pembayaran langsung.
silakan pergi melalui bidang notify_url, return, cancel_return
kode sampel untuk menangani ipn (my_ipn.php) yang diminta oleh paypal setelah pembayaran dilakukan.
Untuk informasi lebih lanjut tentang cara membuat IPN, silakan merujuk ke tautan ini .
Gambar di bawah ini akan membantu Anda dalam memahami proses paypal.
Untuk bacaan lebih lanjut, lihat tautan berikut;
semoga ini membantu kamu .. :)
sumber
satu cara saya telah menemukan:
coba masukkan bidang ini ke dalam kode formulir yang dibuat:
rm berarti metode pengembalian ;
2 berarti (posting)
Daripada setelah pengguna membeli dan kembali ke url situs Anda, maka url itu mendapatkan parameter POST juga
ps jika menggunakan php, cobalah untuk memasukkan
var_dump($_POST);
url pengembalian Anda (skrip), kemudian lakukan pembelian tes dan ketika Anda kembali ke situs Anda, Anda akan melihat variabel apa yang didapat pada url Anda.sumber
Berbagi ini karena saya baru-baru ini mengalami masalah yang mirip dengan utas ini
Untuk waktu yang lama, skrip saya berfungsi dengan baik (formulir pembayaran dasar) dan mengembalikan variabel POST ke halaman success.php saya dan data IPN sebagai variabel POST juga. Namun, belakangan ini, saya perhatikan halaman kembali (success.php) tidak lagi menerima POST vars. Saya menguji di Sandbox dan hidup dan saya cukup yakin PayPal telah mengubah sesuatu!
Notify_url masih menerima data IPN yang benar yang memungkinkan saya untuk memperbarui DB, tetapi saya tidak dapat menampilkan pesan sukses di halaman URL kembalinya (success.php).
Meskipun mencoba banyak kombinasi untuk mengaktifkan dan menonaktifkan opsi di preferensi pembayaran dan IPN situs web PayPal, saya harus membuat beberapa perubahan pada skrip saya untuk memastikan saya masih dapat memproses pesan. Saya telah menyelesaikan ini dengan menyalakan PDT dan Pengembalian Otomatis, setelah mengikuti panduan yang sangat bagus ini .
Sekarang semuanya berfungsi dengan baik, tetapi satu-satunya masalah adalah URL kembali berisi semua variabel PDT yang jelek!
Anda juga dapat menemukan ini bermanfaat
sumber
Saya pikir ide pengaturan nilai-nilai Pengembalian Otomatis seperti dijelaskan di atas oleh Kevin agak aneh!
Katakan, misalnya, bahwa Anda memiliki sejumlah situs web yang menggunakan akun PayPal yang sama untuk menangani pembayaran Anda, atau katakan bahwa Anda memiliki sejumlah bagian dalam satu situs web yang melakukan tugas pembelian yang berbeda, dan memerlukan alamat pengirim yang berbeda saat pembayaran selesai. Jika saya meletakkan tombol di halaman saya seperti yang dijelaskan di atas di bagian 'Formulir contoh menggunakan PHP untuk pembayaran langsung', Anda dapat melihat bahwa ada baris di sana:
tempat Anda menetapkan nilai pengembalian individual. Mengapa harus diatur secara umum, di bagian profil juga?!?!
Juga, karena Anda hanya dapat menetapkan satu nilai di Bagian Profil, itu berarti (AFAIK) bahwa Anda tidak dapat menggunakan Pengembalian Otomatis di situs dengan beberapa tindakan.
Komentar tolong ??
sumber
return
nilai overrriden per-tombol ? Jadi saya dapat memiliki halaman kembali yang berbeda yang semuanya masih akan menerima data PDT?pada halaman checkout, cari elemen formulir tersembunyi 'cancel_return':
setel nilai elemen formulir cancel_return ke URL yang ingin Anda kembalikan:
sumber