Magento2 CE 2.2.0-dev kullanarak aşağıdakiler için yeni bir kurulum kullandım ve varsayılan "Luma" temasını da bıraktım.
MiGS , Braintree , PayPal ve diğerleri gibi harici ödeme yöntemleri (ağ geçitleri) ile ilgili olarak , Magento bu ağ geçitlerini kutudan çıkarır ancak diğer "Checkout" API'leriyle birlikte kullanabileceğiniz NO API'leri sağlar.
Yani, Magento'nun API'larını kullanarak bir ödeme uygulaması / sayfası oluşturmayı planlıyorsanız, SDK / API'larını kullanarak bu hizmetlerle manuel olarak entegre olmanız gerekir, neyse ki, Magento'nun bu servislerle nasıl entegre olduğunu kontrol ederek çok şey öğrenebilirsiniz. - entegrasyonlarda.
Bunu anlamak için, en kolay olduğu için Braintree'yi yapılandırmak zorunda kaldım:
- Https://www.braintreepayments.com/sandbox adresinden korumalı alan hesabı oluşturun
- Magento Yönetici Alanına erişin.
- Mağazalar> Yapılandırma> Satış> Ödeme Yöntemleri> Braintree> Yapılandır.
- "Ortam" ın "Korumalı Alan" olduğundan emin olun ve "Satıcı Kimliği", "Genel Anahtar" ve "Özel Anahtar" girin.
- Yapılandırmayı Kaydet.
- Önbelleği yeniden endekslemeniz ve / veya yenilemeniz gerekebilir.
Alışveriş sepetine bir ürün ekleyip ödeme işlemine geçtikten sonra, son adımda Braintree ödeme yöntemini seçin, ardından "Sipariş Ver" düğmesini tıkladıktan sonra aşağıdaki AJAX isteklerini göreceksiniz:
- 2 kartı doğrulamak, işlemi gerçekleştirmek ve işlem durumu ile yanıtlamak için Braintree API'den talepler.
guest-carts/cartId/payment-informationMagento'nun API belgelerinde açıklandığı gibi her zamanki gövdeyle Magento'nun API'sine yönelik bir istek .
Bundan sonra, son istek siparişi içeren JSON'da yanıt verdiğinde, işlem başarı sayfasına yeniden yönlendirmeyle beklendiği gibi devam eder entity_id

Bu, dış servislere (örneğimizdeki beyincik) çağrıların Magento tarafından dahili olarak DEĞİL ödeme sayfasında gerçekleştirildiğini doğrular, bu nedenle kendi ödeme sayfamızı / uygulamamızı geliştirecek olursak aynı şeyi yapmamız gerekir.
Sipariş durumunu kontrol etmeye gelince, daha derin kazdık ve MiGS, Braintree veya PayPal gibi ödeme yöntemlerini kullanmanın processing, normal yerine durumla ilgili bir siparişle sonuçlandığını öğrendim, bunun pendingbir ödeme yöntemi yapılandırması veya bir gözlemci olduğundan şüpheliyim , ancak bir yapılandırma gibi görünüyordu, işte daha fazla ayrıntı.
Sınıf: Magento \ Satış \ Model \ Sipariş \ Ödeme
Yöntem: Place ()
InitializationYöntem için gerekli olup olmadığını kontrol eden bir koşul vardır, if ($methodInstance->isInitializeNeeded())bu durumda initialize()tanımladığınız bir yöntem yürütülür ve hem stateve hem de belirtmenize izin verir status.