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-information
Magento'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 pending
bir ö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 ()
Initialization
Yö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 state
ve hem de belirtmenize izin verir status
.