Skip to content

Commit

Permalink
updated code examples
Browse files Browse the repository at this point in the history
  • Loading branch information
nuryagdym committed Mar 23, 2024
1 parent e9d0817 commit c2ca5f7
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 34 deletions.
32 changes: 16 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,19 @@ Bu paket ile amaçlanan; ortak bir arayüz sınıfı ile, tüm Türk banka sanal

### Deskteklenen Payment Gateway'ler / Bankalar:

| Gateway | Desktekleyen<br/>bankalar | Desteklenen<br/>Diğer<br/>İşlemler | Desteklenen Sorgular |
|-------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------|-----------------------------------------------------------|-----------------------------------------------------------------------------------------------------|
| Tosla (AKÖde) | ? | NonSecure<br/>3DPay<br/>3DHost | İptal<br/>İade<br/>Durum sorgulama<br/>Sipariş Tarihçesini sorgulama |
| EST POS<br/>(Asseco/Payten)<br/>_deprecated_ | Akbank<br/>TEB<br/>İşbank<br/>Şekerbank<br/>Halkbank<br/>Finansbank<br/>Ziraat | NonSecure<br/>3DSecure<br/>3DPay<br/>3DHost<br/>3DPayHost | İptal<br/>İade<br/>Durum sorgulama<br/>Sipariş Tarihçesini sorgulama |
| EST V3 POS<br/><br/>EstPos altyapının<br/>daha güvenli<br/>(sha512) hash<br/>algoritmasıyla<br/>uygulaması. | -----"----- | -----"----- | -----"----- |
| PayFlex MPI VPOS V4 | Ziraat<br/>Vakıfbank<br/>İşbank | NonSecure<br/>3DSecure<br/> | İptal<br/>İade<br/>Durum sorgulama |
| PayFlex<br/>Common Payment V4<br/>(Ortak Ödeme) | Ziraat<br/>Vakıfbank<br/>İşbank | NonSecure<br/>3DPay<br/>3DHost | İptal<br/>İade |
| Garanti Virtual POS | Garanti | NonSecure<br/>3DSecure<br/>3DPay<br/>3DHost | İptal<br/>İade<br/>Durum sorgulama<br/>Sipariş Tarihçesini sorgulama |
| PosNet | YapıKredi | NonSecure<br/>3DSecure<br/> | İptal<br/>İade<br/>Durum sorgulama |
| PosNetV1<br/>(JSON API) | Albaraka Türk | NonSecure<br/>3DSecure | İptal<br/>İade<br/>Durum sorgulama |
| PayFor | Finansbank<br/>Enpara | NonSecure<br/>3DSecure<br/>3DPay<br/>3DHost | İptal<br/>İade<br/>Durum sorgulama<br/>Sipariş Tarihçesini sorgulama<br/>Geçmiş İşlemleri sorgulama |
| InterPOS | Deniz bank | NonSecure<br/> 3DSecure<br/>3DPay<br/>3DHost | İptal<br/>İade<br/>Durum sorgulama |
| Kuveyt POS | Kuveyt Türk | 3DSecure | İptal<br/>İade<br/>Durum sorgulama<br/>(SOAP API) |
| Gateway | Desktekleyen<br/>bankalar | Desteklenen<br/>Ödeme Tipleri | Desteklenen Sorgular |
|-------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------|---------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|
| Tosla (AKÖde) | ? | NonSecure<br/>3DPay<br/>3DHost | İptal<br/>İade<br/>Durum sorgulama<br/>Sipariş Tarihçesini sorgulama |
| EST POS<br/>(Asseco/Payten)<br/>_deprecated_ | Akbank<br/>TEB<br/>İşbank<br/>Şekerbank<br/>Halkbank<br/>Finansbank<br/>Ziraat | NonSecure<br/>3DSecure<br/>3DPay<br/>3DHost<br/>3DPayHost<br/>Tekrarlanan Ödeme | İptal<br/>İade<br/>Durum sorgulama<br/>Sipariş Tarihçesini sorgulama |
| EST V3 POS<br/><br/>EstPos altyapının<br/>daha güvenli<br/>(sha512) hash<br/>algoritmasıyla<br/>uygulaması. | -----"----- | -----"----- | -----"----- |
| PayFlex MPI VPOS V4 | Ziraat<br/>Vakıfbank<br/>İşbank | NonSecure<br/>3DSecure<br/>Tekrarlanan Ödeme | İptal<br/>İade<br/>Durum sorgulama |
| PayFlex<br/>Common Payment V4<br/>(Ortak Ödeme) | Ziraat<br/>Vakıfbank<br/>İşbank | NonSecure<br/>3DPay<br/>3DHost | İptal<br/>İade |
| Garanti Virtual POS | Garanti | NonSecure<br/>3DSecure<br/>3DPay<br/>3DHost<br/>Tekrarlanan Ödeme | İptal<br/>İade<br/>Durum sorgulama<br/>Sipariş Tarihçesini sorgulama |
| PosNet | YapıKredi | NonSecure<br/>3DSecure<br/> | İptal<br/>İade<br/>Durum sorgulama |
| PosNetV1<br/>(JSON API) | Albaraka Türk | NonSecure<br/>3DSecure | İptal<br/>İade<br/>Durum sorgulama |
| PayFor | Finansbank<br/>Enpara | NonSecure<br/>3DSecure<br/>3DPay<br/>3DHost | İptal<br/>İade<br/>Durum sorgulama<br/>Sipariş Tarihçesini sorgulama<br/>Geçmiş İşlemleri sorgulama |
| InterPOS | Deniz bank | NonSecure<br/> 3DSecure<br/>3DPay<br/>3DHost | İptal<br/>İade<br/>Durum sorgulama |
| Kuveyt POS | Kuveyt Türk | 3DSecure | İptal<br/>İade<br/>Durum sorgulama<br/>(SOAP API) |


### Ana başlıklar
Expand Down Expand Up @@ -84,7 +84,7 @@ Son yapılan değişiklikler için [`CHANGELOG`](./docs/CHANGELOG.md).

### Kurulum
```sh
$ composer require mews/pos
$ composer require symfony/event-dispatcher mews/pos
```
Kütüphane belli bir HTTP Client'ile zorunlu bağımlılığı yoktur.
PSR-18 HTTP Client standarta uyan herhangi bir kütüphane kullanılabilinir.
Expand Down Expand Up @@ -140,11 +140,11 @@ Bundan sonra nesnemizi, yeni ayarlarımıza göre oluşturup kullanmamız gereki
```php
//yeni ayar yolu ya da degeri
$yeniAyarlar = require './pos_ayarlar.php';
$pos = \Mews\Pos\Factory\PosFactory::createPosGateway($account, $yeniAyarlar);
$pos = \Mews\Pos\Factory\PosFactory::createPosGateway($account, $yeniAyarlar, $eventDispatcher);
```

## Ornek Kodlar
`/examples` dizini içerisinde.
`/examples` ve `/docs` dizini içerisinde.

3D ödeme örnek kodlar genel olarak kart bilgilerini website sunucusuna POST eder (`index.php` => `form.php`),
ondan sonra da işlenip gateway'e yönlendiriliyor.
Expand Down
55 changes: 38 additions & 17 deletions docs/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,52 +1,73 @@
# Changelog
## [1.0.0] - 2024-01-??
## [1.0.0] - 2024-03-30
### New Features

- `/docs` altında örnek kodlar eklendi (issue #148).
- API istek verilerinin gateway API'na gönderilmeden önce değiştirebilme.
Bu özellik [psr/event-dispatcher-implementation](https://packagist.org/providers/psr/event-dispatcher-implementation)
uygulaması kullanılarak eklendi.
Kullanım örnekleri için `/examples` ve `/docs` klasörüne bakabilirsiniz.
uygulaması kullanılarak eklendi (issue #178).
Kullanım örnekleri için `/examples` ve `/docs` klasörüne bakınız.
Eklenen Eventler:
- `\Mews\Pos\Event\Before3DFormHashCalculatedEvent`
- `\Mews\Pos\Event\RequestDataPreparedEvent`
- **ToslaPos** (Ak Öde) entegrasonu
- Param birimleri için yeni constantlar eklendi (örn. `PosInterface::CURRENCY_TRY`)
- **ToslaPos** (Ak Öde) entegrasonu (issue #160).
- Para birimleri için yeni constantlar eklendi (örn. `PosInterface::CURRENCY_TRY`)
- Yeni `\Mews\Pos\PosInterface::isSupportedTransaction()` methodu eklendi.
Bu method ile kütüphanenin ilgili gateway için hangi işlemleri destekledigini kontrol edebilirsiniz.
Bu method ile kütüphanenin ilgili gateway için hangi işlemleri desteklediğini kontrol edebilirsiniz.

### Changed
- Kütüphane PHP sürümü **v7.4**'e yükseltildi.
- Deprecated olan `VakifBankCPPos` ve `PayFlexAccount` gateway sınıflar kaldırıldı.
Yerine `PayFlexCPV4Pos` ve `PayFlexV4Pos` kullanabilirsiniz.
- `AccountFactory::createVakifBankAccount()` method silindi, yerine `AccountFactory::createPayFlexAccount()` kullanabilirsiniz.
- Constant'lar `AbstractGateway` sınıfından `PosInterface`'e taşındı.
- Constant'lar `AbstractCreditCard` sınıfından `CreditCardInterface`'e taşındı.
- Config yapısı değiştirildi.
**Test** ve **Prod** ortamları için artık farklı dosyalar kullanılması gerekiyor.
- Config yapısı değişdi.
**Test** ve **Prod** ortamları için artık farklı config dosyalar kullanılması gerekiyor.
Bu değişim sonucunda `\Mews\Pos\PosInterface::setTestMode();` işleminin çok da önemi kalmadı.
Yine de **GarantiPos** için gereklidir. Yeni formata için `/config` klasörüne bakınız.
- Constant isimleri değiştirildi
Yine de **GarantiPos** için `setTestMode()` kullanılmalıdır. Yeni format için `/config` klasörüne bakınız.
- Bazı constant isimleri değişdi
- `TX_PAY` => `TX_TYPE_PAY_AUTH`
- `TX_PRE_PAY` => `TX_TYPE_PAY_PRE_AUTH`
- `TX_POST_PAY` => `TX_TYPE_PAY_POST_AUTH`
- `\Mews\Pos\PosInterface::prepare()` methodu kaldırıldı.
- Pos sınıfları oluşturmak için kullanılan `\Mews\Pos\Factory\PosFactory::createPosGateway()`
methodu artık konfigürasyon yolunu (örnek: `./config/pos_test.php`) kabul etmiyor.
methodu artık konfigürasyon yolunu (örn. `./config/pos_test.php`) kabul etmiyor.
Config verisi **array** olarak sağlanması gerekiyor.
- `\Mews\Pos\Factory\PosFactory::createPosGateway()`'a **EventDispatcher** parametresi eklendi.
- $order verisinden bir zorunlu olmayan alanlar kaldırıldı:
- `$order` verisinden bazı zorunlu olmayan alanlar kaldırıldı:
- email
- name
- user_id
- rand (artık kütüphane kendisi oluşturuyor)

- _vftcode_ (PosNet), _koiCode_ (PosNet), _imece_ kart (EstPos), _extraData_ (EstPos),
_callbackUrl_ (EstPos) gibi ekstra değerler kütüphanedeki kodundan kaldırıldı.
_callbackUrl_ (EstPos) gibi ekstra değerler kütüphaneden kaldırıldı.
Yerine yeni eklenen eventlarla API isteklere ekstra değerler ekleyebilirsiniz.
Kullanım örneği için örnek kodlara bakabilirsiniz.
Kullanım örneği için örnek kodlara bakınız.
- **Tekrarlanan ödeme** yapısı biraz değiştirildi (örnek kodlara bakınız).
- `$response = \Mews\Pos\PosInterface::getResponse();` veri yapısına birkaç ekstra veri eklendi.
Artık, ödeme **iptal**, **iade**, **durum** sorgulama işlemleri için `$response` içindeki veriler yeterli.
- `PosInterface`'e ödeme durumu (order_status) için yeni constant'lar
(örn: `PAYMENT_STATUS_ERROR`, `PAYMENT_STATUS_PAYMENT_COMPLETED`) eklendi
Artık ödeme **iptal**, **iade**, **durum** sorgulama işlemleri yapabilmek için `$response` içindeki veriler yeterli.
- `PosInterface`'e ödeme durumu response'unda yer alan `order_status` alanı için yeni constant'lar
(örn: `PAYMENT_STATUS_ERROR`, `PAYMENT_STATUS_PAYMENT_COMPLETED`) tanıtıldı
ve bu yeni constant'ları kullanacak şekilde güncellemeler yapıldı.
- Yeni `PosInterface::orderHistory()` methodu eklendi.
Siparişe ayıt geçmiş işlemleri sorgulamak için bu yeni methodu kullanmanız gerekiyor.
- Eski `PosInterface::history()` methodu sipariş bilgisi olmadan tarih gibi kriterlerle yapılan işlemler sorgulanabilinir.
- `history` (yeni `orderHistory`) ve `status` işlemlerin input yapısı normalize edildi.
- `history` (yeni `orderHistory`) ve `status` işlemlerin response yapısı normalize edildi.
- `PayForPos`'un **history** response'u normalize edildi.
- `response` yapısında bazı parametre isimleri değişdi:
- trans_id => transaction_id
- trans_time => transaction_time
- `EstPos` ve `EstV3Pos` response'undan `extra` verisi kaldırıldı.
- `response` yapısına `installment_count` ve `transaction_time` değerleri eklendi.
- `CreditCardFactory::create()` method ismi `CreditCardFactory::createForGateway()` olarak değiştirildi.

### Fixed
- `PayFor` history response'i işlerken oluşan exception düzeltildi.
- Fix issue #176 - `EstPos` ve `EstV3Pos`'dan **callbackUrl** kaldırıldı.
- Fix issue #187 - 3D_SECURE ödemede 3D hash kontrolü artık MD/3D status kontrolünden sonra yapılıyor.

## [0.16.0] - 2023-11-20
### New Features
Expand Down
17 changes: 17 additions & 0 deletions docs/THREED-PAYMENT-EXAMPLE.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,23 @@ $order = [
'lang' => \Mews\Pos\Gateways\PosInterface::LANG_TR, // Kullanıcının yönlendirileceği banka gateway sayfasının ve gateway'den dönen mesajların dili.
];

if ($tekrarlanan) { // recurring payments
// Desteleyen Gatewayler: GarantiPos, EstPos, EstV3Pos, PayFlexV4
$order['installment'] = 0; // Tekrarlayan ödemeler taksitli olamaz.

$recurringFrequency = 3;
$recurringFrequencyType = 'MONTH'; // DAY|WEEK|MONTH|YEAR
$endPeriod = $installment * $recurringFrequency;

$order['recurring'] = [
'frequency' => $recurringFrequency,
'frequencyType' => $recurringFrequencyType,
'installment' => $installment,
'startDate' => new \DateTimeImmutable(), // GarantiPos optional
'endDate' => (new \DateTime())->modify(\sprintf('+%d %s', $endPeriod, $recurringFrequencyType)), // Sadece PayFlexV4'te zorunlu
];
}

$session->set('order', $order);

// Kredi kartı bilgileri
Expand Down
2 changes: 1 addition & 1 deletion tests/Functional/PaymentTestTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ private function createPaymentOrder(
];

if ($tekrarlanan) {
// Desteleyen Gatewayler: GarantiPos, EstPos, PayFlexV4
// Desteleyen Gatewayler: GarantiPos, EstPos, EstV3Pos, PayFlexV4

$order['installment'] = 0; // Tekrarlayan ödemeler taksitli olamaz.

Expand Down

0 comments on commit c2ca5f7

Please sign in to comment.