SORU
20 Mart 2011, Pazar


Profesyonel Ödeme akışı

Management için yeni bir ödeme modülü uygulama üzerinde çalışıyorum ve bu mantığın arkasındaki temel kavramı anlamak istiyorum. Mage_Payment_Model_Method_Abstract veya çocukların sınıflardan herhangi birinden uzatmak zorunda olduğumu biliyorum, ama benim sorunum kullanma ve yakalama kullanımı ve benim modelde yöntemleri yetkilendirmek için nasıl. Eğer tüm süreç içinde ayrıldım örneğin adımları bu gibi:

  1. Kullanıcı alışveriş sepeti için geliyor ve benim için seçtiği geçidi olan bazı ödeme yöntemi sağlar.
  2. Sistem bu isteği karşılar, tüm gönderilen verileri toplar ve ağ geçidi (url) kullanıcı gönderir.
  3. Benim kullanıcı deposu hakkında bilgi gönderir gateway sitesinde onun için (ya da iptal eder) yerler.
  4. Benim dükkanım biraz daha alınan veriler ile sipariş değişiklikler yapar ve durumu tamamlanmış ya da iptal ile sipariş kaydeder.

Nerede bu adımlar olacak yetki kullanımı ve yöntemleri yakalamak gerek var mı ? Eğer biri gelir ve yetki yakalamak ne bana açıklayabilir sevinirim?

CEVAP
20 Mart 2011, Pazar


İşte her zaman Profesyonel bir ödeme modülü uygulamak için bilmeniz gerekenler kavramları, ve ben anladım. Eğer belirli cevaplar "nerede oluyor bu umuyorsunuz. o kadar basit olmasa da" aşağıda kalın,

Pre-ınternet, Tuğla ve Harç kredi kartı işlemleri iki aşamalı bir süreç.

Ne zaman bir satış, ne zaman tüccar aldı, tüketicinin kredi kartı satın almak istiyorum slayt bir nokta satışı cihaz hangi Ara içine kredi kartı Merkez ofis ve sor "bu kart yetkili için bu ağ, ve bu özellikle tüketici hattı mevcut kredi büyüklükte izin bu satın alma".

Eğer satın azaldı aksine) kabul edilirse, sorumlu olduğu söylendiyetkili. Tüketici ürün alacağını ve satış sistemi/nakit-kayıt noktası hareket yetkili olduğunu söyleyecekti. Sonra, sonunda bir gün ya da hafta sonuna, diğer bazı önceden belirlenmiş düzenli olarak ya da zaman sahibi karar için içmeyi, tüccar gider ama tüm bunların yetkili Makbuzlar ve Gönderbaşka birMerkez ofis için talepyakalamabu gelen parayetkiliişlem. Fon yakalama tüccar hesabına para koyar.

Bu hala en ağ geçitleri tarafından kullanılan model ve Inc Profesyonel etki alanı modeli. ödeme modülleri için uygulamak için seçti.

Bu işleri gerektiği gibibir tüketici son ödeme adımları ulaştığındaProfesyonel gibi bir sistem, Profesyonel ağ geçidi API için bir yetkilendirme isteği verir. Eğer işlem başarılı olursa, emrin sisteme kabul edilir ve yetkilendirme isteği, benzersiz bir KİMLİĞİ saklanır. Tüketicinin mal gemi ne zaman gelecek, dükkan sahibiProfesyonel yönetim, bir fatura oluşturmak için kullanır. Bu fatura oluşturma yakalama isteği (mağaza kimliği kullanarak yetkilendirme isteği döndü) verir.Bu yöntem çağrıları Profesyonel olarak düzenlenir.

Ancak, her ödeme geçidi biraz farklı bu kavramları yorumlar ve her tüccar kendi "sevk ettik kadar yakalama yok" sorumlulukları farklı. yorumlaması nedeniyle zor olsun Senaryo yukarıdakilere ek olarak, ödeme modülleri sistem yapılandırma değeri olarak bilinirÖdeme Eylem. Bu ayarlanabilirSadece Yetkiakış yukarıda açıklanan uygulamak olacak., Ayrıca ayarlanabilirYetki ve Yakalamahem yetki ve sipariş verildiğinde ödeme yakalayacaktır., Oluyor biledaha fazlakafa karıştırıcı, çünkü, ancak bu yöntemi çağrılır Yetki ve Yakalama, geçerli sürümleri Profesyonel tek sorun çekme isteğini ne zaman bu mod (en azından Authorize.net ve Authorize.net will, içten, bırakın yakalama istekleri bir yetkili, ancak yakalanan devlet için en günü. Siparişler ve ödemeler ve faturalar nasıl işleyeceğini sürümden sürüme değişir bu kod bir alandır.

Bu yüzden, Profesyonel ödeme modülü sistemin arkasındaki fikir Küme F--- programlama ödeme Geçidi mantıktır ... seni korumak. authorize yöntem size ödeme ağ geçidi için bir telefon API (veya çekler ve mantık olmasını ister bu noktada yerine getirme yetkisi ... ... uygulamak. Bu ödeme yöntemi bir nesne ve bir miktar geçti. Eğer gerçekleştirmek kendi mantığı ve sebebi ne olursa olsun geçersiz olduğunu belirlemek/istek yaparsanız, bir İstisna

Mage::throwException('...');

Bu yetkilendirme başarısız Management söyler ve buna göre (bir hata iletisi göster, vb.) hareket edecektir. Aksi takdirde, Ödeme veri üyeleri ve bir sorun kümesi nesnesi

return $this;

Veri üyeleri ödeme çekerken daha sonra ihtiyacınız olacak şeyler. Ödeme modülü capture yöntem için bize getiriyor. Bu ödeme yöntemi aynı zamanda bir nesne ve bir miktar gönderilir. Bu yöntemde yakalama isteği sorun. Ödeme nesne cc_trans_id veri üyesi olacak

$payment->getCcTransId()

sizin gateway karşı bir çekim sorun sağlayacak. Bu authorize tasarruf sorumlusun veri üyelerinden biridir. Eğer kod yakalama başarısız oldu belirlerse yine, bir istisna. Aksi halde, 13**.

Authorize.net ödeme modülü bu nasıl yapılır iyi örnekler vardır.

app/code/core/Mage/Paygate/Model/Authorizenet.php

Örneğin, bu capture yönteminin bir parçası düşünün

public function capture(Varien_Object $payment, $amount)
{
    if ($payment->getCcTransId()) {
        $payment->setAnetTransType(self::REQUEST_TYPE_PRIOR_AUTH_CAPTURE);
    } else {
        $payment->setAnetTransType(self::REQUEST_TYPE_AUTH_CAPTURE);
    }   

    $payment->setAmount($amount);
    $request= $this->_buildRequest($payment);
    $result = $this->_postRequest($request);
    //...

Burada yakalama yöntemi ise ödeme cc_trans_id varsa kontrol ediyor. Sonuca göre, ya anet_trans_type ayarlar:

self::REQUEST_TYPE_PRIOR_AUTH_CAPTURE
self::REQUEST_TYPE_AUTH_CAPTURE

Sonra API isteği tarafından kullanılır bu değer ya da için bir API çağrısı göndermek için nesne

  1. Önceden onaylı bir hareket yakalama
  2. Hemen yakalayın

Umarım işinize yarar, iyi şanslar!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Howcast

    Howcast

    4 EKİM 2007
  • We've moved!

    We've moved!

    7 Ocak 2008
  • sknbp

    sknbp

    16 Kasım 2006