Saya telah menggunakan instalasi baru untuk yang berikut menggunakan Magento2 CE 2.2.0-dev, dan meninggalkan tema "Luma" default juga.
Mengenai metode pembayaran eksternal (gateway) seperti MiGS , Braintree , PayPal , dan lainnya, Magento mendukung gateway ini di luar kotak tetapi tidak menyediakan API untuk mereka yang dapat Anda gunakan bersama dengan API "Checkout" lainnya.
Jadi, jika Anda berencana untuk membangun aplikasi checkout / halaman menggunakan Magento's APIs, Anda perlu mengintegrasikan secara manual dengan layanan ini menggunakan SDK / API mereka, untungnya, Anda dapat belajar banyak dengan memeriksa bagaimana Magento terintegrasi dengan layanan ini dalam pembuatan -dalam integrasi.
Untuk memahami ini, saya harus mengonfigurasi Braintree karena ini yang paling mudah:
- Buat akun sandbox di https://www.braintreepayments.com/sandbox
- Akses Area Admin Magento.
- Toko> Konfigurasi> Penjualan> Metode Pembayaran> Braintree> Konfigurasi.
- Pastikan "Lingkungan" adalah "Kotak Pasir", dan masukkan "ID Pedagang", "Kunci Publik", dan "Kunci Pribadi".
- Simpan Konfigurasi
- Anda mungkin perlu mengindeks ulang dan / atau menyegarkan cache.
Setelah menambahkan produk ke troli dan melanjutkan ke checkout, pada langkah terakhir, pilih metode pembayaran Braintree, lalu setelah mengklik tombol "Tempatkan Pesanan", Anda akan melihat permintaan AJAX berikut:
- 2 permintaan ke Braintree API untuk memvalidasi kartu, melakukan transaksi, dan merespons dengan status transaksi.
- Permintaan untuk API Magento
guest-carts/cartId/payment-information
dengan badan yang biasa seperti yang dijelaskan dalam dokumentasi API Magento.
Setelah itu proses berlanjut seperti yang diharapkan dengan pengalihan ke halaman sukses ketika permintaan terakhir merespons di JSON yang berisi pesanan entity_id
Ini mengkonfirmasi bahwa panggilan ke layanan eksternal -Braintree dalam contoh kita- dilakukan oleh halaman checkout BUKAN oleh Magento secara internal, jadi kita perlu melakukan hal yang sama jika kita ingin mengembangkan halaman checkout / aplikasi kita sendiri.
Mengenai pengontrolan status pesanan, saya menggali lebih dalam dan mengetahui bahwa menggunakan metode pembayaran seperti MiGS, Braintree, atau PayPal, menghasilkan pesanan dengan status processing
alih-alih seperti biasanya pending
, saya menduga ini adalah konfigurasi metode pembayaran atau pengamat. , tetapi tampaknya ini adalah konfigurasi, berikut ini detailnya.
Kelas: Magento \ Penjualan \ Model \ Pesanan \ Pembayaran
Metode: Tempat ()
Ada persyaratan yang memeriksa apakah Initialization
diperlukan untuk metode ini if ($methodInstance->isInitializeNeeded())
, jika itu masalahnya, metode initialize()
dijalankan yang Anda tetapkan, dan memungkinkan Anda untuk menentukan keduanya state
dan status
.