nopCommerce Paypal Standart Ödeme Metodunda address_override Özelliği

nopCommerce açık kaynak e-ticaret uygulamasıE-Ticaret uygulamaları için ödeme metodlarından biri olan Paypal'a entegrasyon için paypal'ın sağladığı Payment Data Transfer metodu kullanılıyor.

nopCommerce e-ticaret uygulamasında bu ödeme metodunu aktif etmek için öncelikle Paypal hesabını ticari veya premium hesaba çevirip, PDT özelliğini aktif etmeniz gerekiyor.

Ardından nopCommerce yönetim panelinden ödeme seçenekleri ayarlarından Paypal Standart'ı seçip PDT ayarlarınızı kaydediyorsunuz ve e-ticaret uygulamanızın Paypal entegrasyonunu sağlamış oluyorsunuz.

Benzer bir Paypal entegrasyonunu yapmaya çalışırken şöyle bir sorun ile karşılaştım. E-Ticaret uygulamasındaki test hesabım ABD adresi ile kayıtlı iken, ödeme yapmaya çalıştığım hesap Türkiye adresi ile kayıtlı idi. 

Paypal default ayarlarda bu tarz durumları güvenlik sorunu olarak değerlendirip aşağıdaki gibi bir hata mesajı ile ödemeyi durduruyor : 

Paypal does not allow your country of residence to ship to the country you wish.

Bu sorunu aşmak için 2 yöntem mevcut. İlki uygulamamızı kullanan kullanıcıların uygulamamızda kayıtlı olan adres bilgileri ile kullandıkları Paypay hesabının adres bilgilerinin denk olmasını beklemek.

İkinci yöntem ise Paypal entegrasyonunda kullanılan parametrelerden address_override değişkeninin değerini "0" olarak paypal'a iletmek. address_override değişkeni, fatura adresi ile paypal hesabının denk olması kuralını aşmayı sağlayan bir parametre, gerekli bilgi Paypal'ın 

HTML Form Basics for Website Payments Standard adresinde mevcut.

Bu değişkenin değerini nopCommerce'de değiştirmek için maalesef Nop.Plugin.Payments.PayPalStandard plugin'ini değiştirmeniz gerekiyor. 

Şuan plugin kodunda görüldüğü üzere yazılım ekibi, bu özelliği Paypal Ayarları sayfasına eklemeyi planlıyor. Ama henüz eklenmiş durumda değil. İleride çıkacak nopCommerce sürümlerinden birinde bu seçenek yönetim sayfasında yerini alabilir.

1. Nop.Plugin.Payments.PayPalStandard projesini açın.

2. PayPalStandardPaymentProcessor.cs sınıfı içerisindeki PostProcessPayment metodu içerisindeki aşağıdaki satırı bulup değerini 0 olarak eşitleyin.

//TODO move this param [address_override]

//to settings (PayPal configuration page)

builder.AppendFormat("&address_override=0");

3. Plugin'i derleyin.

4. Projenin özelliklerinden göreceğiniz üzere projenin output path'i aşağıdaki gibi : 

    ..\..\Presentation\Nop.Web\Plugins\Payments.PayPalStandard\

        Nop.Plugin.Payments.PayPalStandard.dll

Bu dizinden plugin'nin dll'ini alıp web uygulamanızın Plugins\Payments.PayPalStandard dizinine atıp uygulamanızı restart ettiğinizde Paypal entegrasyonu artık address_override parametresi aktif edilmiş olarak çalışmaya başlayacaktır.

Yorumlar kapalı