Magento2 Rest API Sipariş Akışı


13

Ben sipariş yerleştirme için magento web sitesine REST API çağrıları yapıyorum. Aramalarımın sırası aşağıdadır.

  1. Sepet oluştur rest/V1/guest-carts/
  2. Sepeti al rest/V1/guest-carts/bae0af147b83f1561f66cc4e3c97916e
  3. Sepete ürün ekle rest/V1/guest-carts/24/items
  4. Fatura bilgileri ekleyin, ödeme yöntemini ayarlayın ve sipariş verin rest/V1/guest-carts/24/payment-information

Bu sırayla sipariş, sipariş durumu "beklemede" olarak verilir. Ödemeyi işleme koymak ve fatura oluşturmak için herhangi bir ödeme ağ geçidi (Örn. PayPal) söz konusuysa ödemenin api yoluyla nasıl alındığını merak ediyorum.

Ödemeleri yakalamak için yukarıdaki akışta eksik bir API var mı?

Yanıtlar:


12

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:

  1. Https://www.braintreepayments.com/sandbox adresinden korumalı alan hesabı oluşturun
  2. Magento Yönetici Alanına erişin.
  3. Mağazalar> Yapılandırma> Satış> Ödeme Yöntemleri> Braintree> Yapılandır.
  4. "Ortam" ın "Korumalı Alan" olduğundan emin olun ve "Satıcı Kimliği", "Genel Anahtar" ve "Özel Anahtar" girin.
  5. Yapılandırmayı Kaydet.
  6. Ö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:

  1. 2 kartı doğrulamak, işlemi gerçekleştirmek ve işlem durumu ile yanıtlamak için Braintree API'den talepler.
  2. 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

resim açıklamasını buraya girin

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.


ödeme bilgileri api için yükü paylaşabilir misiniz
blakcaps

1
{ "cartId": "a98697cba964d6ba0d3b64d78a31df33", "billingAddress": { "CountryID": "EG", "regionId": null, "bölgesi": "", "sokak": [ "sokak", ""], "şirketi ":" şirketim "," telefon ":" 12346987 "," posta kodu ":" 12345 "," şehir ":" şehir "," ad ":" f adı "," soyadı ":" l adı "," saveInAddressBook ": null}," PAYMENTMETHOD ": {" yöntemi ":" braintree " "additional_data": { "payment_method_nonce": "ef27df81-7c29-4a74-9049-15de33f1f49f"}}, "e-posta":" e-posta @ örnek .com "}
Mahmoud Tantawy

Yük için teşekkürler. Merak ediyorum, nasıl "payment_method_nonce" oluşturmak için.
blakcaps

Gerçekten bilmiyorum ama gerçekten bir nonce olarak işlev görürse, nonce kolayca keşfedilebilir istekleri ileri geri inceleyerek düşünüyorum.
Mahmoud Tantawy

1
Braintree, düşünce REST API'sini entegre etmek kolay görünüyor. Ancak Papal veya Ingenico gibi harici yönlendirme ödeme ağ geçidini nasıl entegre edebilirim?
Franck Garnier
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.