Closed sekizlipenguen closed 3 years ago
Merhabalar, hangi POS sistemi icin soruyorsunuz?
En son Finansbank Payfor icin yapilmisti, examples
klasorunde ornekleri var.
Garanti ayri bir kullanici bilgileri istiyor iptal/iade islemleri icin, kod orneklerde olabilir, ama calisip calismadigindan emin degilim.
Yapikredide user'e iptal yetkisi ayrica veriliyor diye biliyorum
Cevap için teşekkür ederim ancak örnekler içerisinde iade, iptal örneklerini göremedim tekrar bakmama rağmen bunlar yok gibi.
Şu şekilde kodlara ulaştım ve sonuç buldum kullanımım doğru ise bu da yeter bana. Bu arada akbank testini yaptım ve çalışıyor.
if ($type == 1) {
$in = $posMain->bank->refund($meta);
} else {
$in = $posMain->bank->cancel($meta);
}
Bu arada iade işlemlerinde akbank tarafında canlı denemede aldığım hata aşağıdaki gibidir iptaller gerçekleşiyor iadeler problemli duruyor;
response: Error proc_return_code: 99 trans_id: ------ error_code: CORE-2504 error_message: Sifir miktarli iade yapilamaz. status: declined status_detail: general_error
Akbank'ta testleri localhost'ta yapabiliyor muyuz? yapabiliyorsak bana kullanici bilgilerini gonderseniz bakabilirim
Akbank iade kodu orneklerde su sekilde:
$pos->prepare([
'id' => '201810297E8B',
'amount' => '100',
], \Mews\Pos\Gateways\AbstractGateway::TX_REFUND);
// Refund Order
$pos->refund();
$response = $pos->getResponse();
/**
* @inheritDoc
*/
public function createRefundXML()
{
$requestData = [
'Name' => $this->account->getUsername(),
'Password' => $this->account->getPassword(),
'ClientId' => $this->account->getClientId(),
'OrderId' => $this->order->id,
'Type' => $this->types[self::TX_REFUND],
];
if (isset($this->order->amount)) {
$requestData['Total'] = $this->order->amount;
}
return $this->createXML($requestData);
}
iade icin amount
alanini gonderiyor musunuz?
Aynen gönderiyorum ekteki alan estpost.php'den 4.0 versiyonu kullanıyorum şu an.
Kullanımı ise şöyle yapıyorum; senin gönderdiğin ise benim kullanım şeklimden farklı sanırım yeni versiyonda mı öyle?
@nuryagdym problem şu gibi görünmekte xml yapısında var olan kod;
if ($meta['amount']) $nodes['Total'] = $meta['amount'];
bunu şu şekilde değiştirdiğimde çalışıyor;
if ($meta['amount']) $nodes['CC5Request']['Total'] = $meta['amount'];
en azından artık sıfır uyarı vermiyor ve doğru olan gün sonu mesajını alıyorum;
Öyle sanıyorum ki bu diğer versiyonlarda da hatalı kodlanmış. createXML fonksiyonu zaten 0 key alnmış ve bunun üstündekilere zaten xml çeviride bir şey katmıyor.
**array_keys($nodes)[0];**
estpos.php kullanan entegrasyonların tümü böyleydi diğer bankalarınkine baktım onlar da bu problem bulunmamakta.
XML encoder kutuphane versiyonu sonraki versiyonlarda degisti, olusan sonuc XML'e bakilmasi gerekiyor, son versiyonda zaten baya code refactoring yapildi, o yuzden biraz farkli kodlar.
xml versiyonuna baktığımda sonuç olarak Total eklenmiyordu dediğim gibi rootNodeName zaten sıfırıncı keyi alıp işlem yapıyor buda xml encoder alakalı olmadığını gösteriyor ancak dediğin gibi demek ki sadece bir root node yapısını destekliyor olabilir. Şu an bu versiyonu kullanmam gerektiği için 0.4.5 versiyonuna ilerletemiyorum en kısa sürede laraveli geçiricem bu versiyonu desteklemeye ancak sana son olarak sormak istediğim bir şey var bu versiyonda biryerlerde session ile satışın başarılı olup olmadığını kontrol ediyor olabilir misin? Redisi yeni versiyonlarda kullandığını gördüm session oturum bazlı ödemelerde problem mi oluşturuyor şu an kullandığım versiyonda teşekkürler tüm cevaplar için.
bende 1 sene once once sorun cikardi session. 3D odemede, kullanici 3d onaylama sayfasindan geri geldiginden session tektrardan baslatiliyordu. En basta musteriye yaptigimda boyle bir sorun yoktu, sonradan cikti bu. Ondan sonra local ortam testleri yaparken de ayni seyle karsilastim. o yuzden redis'e donusturdum test kodlari da
Merhaba, Öncelikle elinize sağlık iade ve iptal işlemleri için izlememiz gereken adımlar nelerdir nasıl yapabiliyoruz bunların örneklerini göremedim maalesef?