pluspay_a2a 0.8.0
pluspay_a2a: ^0.8.0 copied to clipboard
PlusPay A2A (app-to-app) payment plugin for Android POS devices — start payments, EOD, refunds and transaction queries.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.8.0 - 2026-10-09 #
Added #
- İşlem sonucu sorgusu (
TRANSACTION_RESULT): YenigetTransactionResultmetodu vePPTransactionResultRequestModel(orderCode,transactionId). Tek bir işlemin güncel durumunuPPStartPaymentResponseModelolarak döner; işlem bulunamazsaPP_A2A_016fırlatılır. - Sipariş sonucu sorgusu (
ORDER_RESULT): YenigetOrderResultmetodu vePPOrderResultRequestModel(orderCode). Ödeme başlatmadan siparişi ve tüm işlemleriniPPOrderPaymentResponseModelolarak döner. - Teknik iptal (
POST_TECHNICAL_CANCEL): YenitechnicalCancelmetodu,PPTechnicalCancelRequestModel(orderCode,transactionId) vePPTechnicalCancelResponseModel(orderCode,transactionId,status). - Dil seçimi (
locale):PPGeneralRequestHeader'alocalealanı, tümtoRequestfactory'lerine opsiyonellocaleparametresi,initialize(locale: ...)vePPA2AClient.localeeklendi. POS+ arayüzü işlem süresince bu dile geçer. Desteklenen dillerppSupportedLocalessabitindedir. PPA2AErrorCodes: POS+ ve istemci hata kodları için sabitler (PP_A2A_001–PP_A2A_016,LAUNCH_INTENT_ERROR,PP-A2A-PARSE). Yeni kodlar:PP_A2A_014(zaman aşımı),PP_A2A_015(önceki istek işleniyor),PP_A2A_016(işlem bulunamadı).- Enum değerleri:
PPTransactionType'aPOST_TECHNICAL_CANCEL,TRANSACTION_RESULT,ORDER_RESULT;PPPaymentType'aINSTALLMENT;PPPaymentMethod'aCHIP,LINK,NFC_R,PAYCELL_LINK,PAYCELL_MERCHANT_PAGE;PPOrderSourceEnum'aTSM;PPTransactionTypeEnum'aIADE;PPParameterTypes'asodexoeklendi.
Changed #
- Bilinmeyen enum değerleri artık hata vermez (
UNKNOWN): POS+ bu paket sürümünün tanımadığı bir enum değeri döndürdüğünde yanıtın tamamı parse hatasına düşmek yerine ilgili alanUNKNOWNolur (PPParameterTypesiçinunknown). Yanıtlarda kullanılan tüm enum'lara bu değer eklendi. Zorunlu alanlar zorunlu kalır; alan hiç gelmezse deUNKNOWNolur. Zaten nullable olan alanlar nullable kalır (null= alan gönderilmedi).PPPaymentTypeMethodsModel.methodslistesinde bilinmeyen değerler atlanır;PPMultiPaymentResponseModel.sourcealan gelmezsePOS, bilinmeyen değerdeUNKNOWNolur.UNKNOWNyalnızca yanıtlarda görülür, istek gönderirken kullanılmamalıdır. - Dikkat — exhaustive
switch: Enum'lara yeni değerler (UNKNOWN,INSTALLMENT,LINKvb.) eklendiği için bu enum'lar üzerinde tüm değerleri ele alanswitchifadeleri yeni case'ler (veyadefault) gerektirebilir. Bunun dışında API geriye dönük uyumludur; alan tipleri değişmedi. - Aynı anda tek istek: Bir isteğin cevabı beklenirken yeni istek gönderilirse istemci intent atmadan
PP_A2A_015fırlatır. Önceden yeni istek, bekleyen isteğinFuture'ını sahipsiz bırakıyordu. 20 dakikadan uzun süredir cevapsız kalan istek kaybolmuş sayılır (PP_A2A_014ile sonlanır) ve yeni isteği engellemez.
Fixed #
LAUNCH_INTENT_ERRORdurumunda bekleyen istek temizlenmiyordu; sonraki istekler etkilenebiliyordu.- README örneklerindeki artık var olmayan
clientTokenparametresi kaldırıldı.
Notes #
- POS+'ın döndürdüğü
error_messageher zaman Türkçedir; kullanıcıya gösterilecek metnierrorCodeüzerinden üretin. - POS+ açılış için 3 dakika, işlem için 15 dakika bekler; istemci tarafı zaman aşımları 15 dakikadan uzun olmalıdır.
localeve yeni operasyonlar POS+'ın bu özellikleri içeren sürümünü gerektirir; eski POS+ sürümlerilocale'i yok sayar ve yeni operasyonları hata ile reddeder.
0.7.0 - 2026-08-25 #
Added #
- Sipariş oluşturma (
ORDER_CREATE): Ödeme başlatmadan yalnızca sipariş oluşturmak için yenicreateOrdermetodu eklendi. Oluşturulan sipariş daha sonrastartOrderPaymentile tahsil edilebilir;orderCodezaten kayıtlıysa sipariş güncellenir. PPOrderCreateRequest:toRequest()ile üretilen yeni istek modeli. AlanlarPPMultiPaymentRequestile aynıdır;transactions,changePaymentStatus,canTryAgainvestartTimebulunmaz.PPOrderCreateResponseModel:PPMultiPaymentResponseModeliçin typedef; sipariş detayını döner.PPTransactionType: YeniORDER_CREATEdeğeri eklendi.
Notes #
- Tutarlar bu istekte düz ondalık (
100.0) olarak gönderilir. - Değişiklik geriye dönük uyumludur (breaking değil).
0.6.0 - 2026-06-29 #
Added #
- Mevcut ödeme yöntemleri sorgusu (
AVAILABLE_PAYMENT_METHODS): POS+ üzerinde o an aktif/kullanılabilir ödeme tiplerini ve yöntemlerini öğrenmek için yenigetAvailablePaymentMethodsmetodu eklendi. Liste, oturumun profil ve cihaz filtrelerinden geçmiş hâliyle döner (örn. nakit yetkisi yoksaCASHlistede olmaz; fiziksel POS'ta Multinet/Metropol içinSWIPEeklenir). PPAvailablePaymentMethodsRequestModel: Yalnızca header içeren,datagerektirmeyen yeni istek modeli (toRequest()).PPAvailablePaymentMethodsResponseModel:paymentTypeslistesini taşıyan yeni yanıt modeli. Her öğePPPaymentTypeMethodsModelolupcode(PPPaymentType),methods(List<PPPaymentMethod>) ve opsiyoneltitlealanlarını içerir.PPTransactionType: YeniAVAILABLE_PAYMENT_METHODSdeğeri eklendi.
Notes #
- Yanıttaki
codevemethodsalanları mevcutPPPaymentType/PPPaymentMethodenum'larıyla eşleşir. - Değişiklik geriye dönük uyumludur (breaking değil).
0.5.1 - 2026-06-26 #
Changed #
- Dokümantasyon: Paket pub.dev üzerinde yayınlandı. README kurulum talimatları Git bağımlılığı yerine
flutter pub add pluspay_a2a/pluspay_a2a: ^0.5.1standart pub.dev kurulumuna güncellendi.pubspec.yamliçinedescription,homepageverepositoryalanları, kök dizine MITLICENSEeklendi.
0.5.0 - 2026-06-04 #
Fixed #
PPMultiPaymentRequest.toRequest–currencyartık dikkate alınıyor: Öncedencurrencyparametresi yok sayılıp gövdeye sabitPPCurrencyType.TRYyazılıyordu. Artık çağrıda verilencurrencydeğeri (TRY/USD/EUR/GBP) doğru şekilde gönderiliyor.
Added #
ProductModel–otvOranivekonaklamaOrani: Çoklu ödeme ürünlerine ÖTV ve konaklama oranı alanları eklendi (otv_orani/konaklama_orani, varsayılan0). POS+ tarafı bu alanları artık okuyor.PPMultiPaymentRequest–canTryAgain:toRequestvePPMultiPaymentRequestDataiçincanTryAgainalanı eklendi (can_try_again, varsayılantrue).PPBillingInfo–code: Fatura bilgisine opsiyonelcodealanı eklendi (code).
Notes #
- Tüm yeni alanlar varsayılan değerlere sahiptir; değişiklik geriye dönük uyumludur (breaking değil).
0.4.0 - 2026-06-03 #
Changed #
- BREAKING –
clientTokenremoved: TheclientTokenparameter is no longer required (or accepted) by any request. It has been commented out across alltoRequestfactories and thePPGeneralRequestHeadermodel, and is no longer included in the request payload. It may be re-enabled in a future release.- Affected requests:
PPStartPaymentRequestModel,PPCancelPaymentRequestModel,PPEftPaymentRequestModel,PPEftCancelRequestModel,PPOrderPaymentRequestModel,PPMultiPaymentRequest,PPParameterRequestModel,PPEodRequestModel. - Migration: remove any
clientToken:arguments from yourtoRequest(...)calls.
- Affected requests:
0.3.1 - 2026-05-08 #
Removed #
PPMultiPaymentRequest: Removed requiredserialNoparameter fromtoRequestfactory. The field is no longer part of the multi payment request payload.
0.3.0 - 2026-03-05 #
Added #
- Multi Payment support: New
startMultiPaymentmethod onPPA2AClientfor order-based multi-payment flows PPMultiPaymentRequest: New request model withtoRequestfactory, supporting products, transactions, billing info, delivery options, and morePPMultiPaymentResponseModel: Comprehensive response model with detailed product, transaction, tax, card info, and document sub-modelsProductModelandTransactionModel: New models for defining products and transactions in multi-payment requestsFormatterutility class for DateTime serialization (yyyy-MM-dd HH:mmformat)- New enums:
PPCurrencyType(TRY,USD,EUR,GBP)PPProductTypeEnum(PHYSICALLY,VIRTUAL,INFO,MD,DSN,QP,KFO,COMMISSION,HGS)PPQtyEnums(ADET,KG,GR,LT,MT,KOLI,PAKET,PORSIYON)PPDiscountTypeEnum(PERCENTAGE,FIXED_AMOUNT)PPOrderSourceEnum(POS,WEB,KIOSK)PPDocumentTypeEnum(EFATURA,EARSIV,BILGIFISI)PPDocumentStatusEnum(SUCCESS,CANCEL,FAIL,WAITING,NONE)PPTransactionStatusEnum(SUCCESS,CANCEL,FAIL,NONE,WAITING,NOT_RESPONSE)PPTransactionTypeEnum(START,SATIS,CANCEL,REFUND)ORDER_MULTI_PAYMENTadded toPPTransactionType
- New dependency:
intlpackage for date formatting
0.2.3 - 2026-02-26 #
Removed #
PPDeviceTypeEnum: Removed enum entirely (POS,KIOSKvalues no longer exist)PPGeneralRequestHeader: RemoveddeviceTypefield- Removed
deviceTypeparameter from the followingtoRequestfactory methods:PPStartPaymentRequestModel.toRequest()PPCancelPaymentRequestModel.toRequest()PPEftPaymentRequestModel.toRequest()PPEftCancelRequestModel.toRequest()PPOrderPaymentRequestModel.toRequest()
0.2.2 - 2026-02-17 #
Added #
PPDeviceTypeEnum: New enum withPOSandKIOSKvalues to specify the target device typePPGeneralRequestHeader: New optionaldeviceTypefield (defaults toPPDeviceTypeEnum.POS)- Optional
deviceTypeparameter added to the followingtoRequestfactory methods:PPStartPaymentRequestModel.toRequest()PPCancelPaymentRequestModel.toRequest()PPEftPaymentRequestModel.toRequest()PPEftCancelRequestModel.toRequest()PPOrderPaymentRequestModel.toRequest()
0.2.1 - 2026-02-12 #
Changed #
- Example project now uses tag-based package imports instead of branch references
0.2.0 - 2026-02-12 #
Breaking Changes #
PPGeneralRequestHeader: RemovedserialNofield. OnlyclientTokenis now required for authentication.- All request model
toRequestfactory methods no longer requireserialNoparameter:PPStartPaymentRequestModel.toRequest()PPCancelPaymentRequestModel.toRequest()PPEftPaymentRequestModel.toRequest()PPEftCancelRequestModel.toRequest()PPOrderPaymentRequestModel.toRequest()PPEodRequestModel.toRequest()PPParameterRequestModel.toRequest()
Migration Guide #
Remove serialNo from all toRequest calls:
// Before (0.1.0)
PPStartPaymentRequestModel.toRequest(
serialNo: 'DEVICE-SERIAL-001', // Remove this line
clientToken: 'YOUR-CLIENT-TOKEN',
orderCode: 'ORD-001',
totalAmount: 100.0,
paymentType: PPPaymentType.POS,
paymentMethod: PPPaymentMethod.CC,
);
// After (0.2.0)
PPStartPaymentRequestModel.toRequest(
clientToken: 'YOUR-CLIENT-TOKEN',
orderCode: 'ORD-001',
totalAmount: 100.0,
paymentType: PPPaymentType.POS,
paymentMethod: PPPaymentMethod.CC,
);
0.1.0 - 2026-02-04 #
Breaking Changes #
PPGeneralRequestHeader: AddedserialNoandclientTokenas required fields- All request model
toRequestfactory methods now requireserialNoandclientTokenparameters
Migration Guide #
Update all toRequest calls to include the new required parameters:
// Before (0.0.1)
PPStartPaymentRequestModel.toRequest(
orderCode: 'ORD-001',
totalAmount: 100.0,
paymentType: PPPaymentType.POS,
paymentMethod: PPPaymentMethod.CC,
);
// After (0.1.0)
PPStartPaymentRequestModel.toRequest(
serialNo: 'DEVICE-SERIAL-001',
clientToken: 'YOUR-CLIENT-TOKEN',
orderCode: 'ORD-001',
totalAmount: 100.0,
paymentType: PPPaymentType.POS,
paymentMethod: PPPaymentMethod.CC,
);
0.0.1 - 2025-01-01 #
Added #
- Initial release of pluspay_a2a Flutter plugin
- App-to-App (A2A) communication with POS+ Android application
- Payment operations:
startPayment,cancelPayment - EFT POS operations:
startEftPayment,cancelEftPayment - Order payment:
startOrderPayment - End of day reports:
triggerEod - Parameter updates:
triggerParameters - Comprehensive request/response models with Freezed
- Error handling with
PPA2AException