Ana içeriğe geç

GMU POS

Giriş

GMU Pos Android Sdk ve GMU-GMU Pos Backoffice kullanımları için yapılması gereken adımlar aşağıda anlatılmıştır. Herhangi bir sorunuz olması durumunda Protein ekibi ile iletişime geçebilirsiniz.

Yararlı Linkler

Onboarding Adımları

  1. Protein ekibine ait Auth Server sistemi kullanılacaksa, Protein ekibi tarafından iletilecek olan veriler ile geçerli bir JWT Token alınır. Fakat kendi Auth sistemini kullananlar için, kendi ortamlarında kullanmak üzere geçerli bir JWT Token üretmeleri gerekir.

  2. Alınan JWT Token ile birlikte Enterprise oluşturma adımı takip edilir.

    -> POST-/administrative/enterprise endpointi ile Enterprise oluşturma adımı gerçekleştirilir.

    • İstek atılırken eklenen request body içerisinde, manager kısmında yer alan parametreler ile, oluşturulan bu enterprise verisine ait bir kullanıcı oluşturularak Backoffice ortamına giriş sağlanır.
    • Response olarak ise işlemin başarılı olmasının ardından bir Enterprise Id verisi dönmektedir.
  3. Enterprise oluşturma adımının ardından, sistemi aktif hale getirebilmek için Branch oluşturma adımı takip edilir.

    -> POST-/administrative/enterprise/{enterpriseId}/branch endpointi ile branch oluşturma adımı gerçekleştirilir.

    • İstek atılırken query parameter olarak Branch'in oluşturulacağı Enterprise Id verilir.
    • Response kısmında ise işlemin başarılı olmasının ardından Branch Id verisi dönmektedir.
  4. Branch verisi de oluşturulduktan sonra Device oluşturma adımı takip edilir.

    -> POST-/administrative/enterprise/{enterpriseId}/branch/{branchId}/device endpointi ile Device oluşturma adımı gerçekleştirilir.

    • İstek atılırken query parameter olarak Device'ın oluşturulacağı Enterprise Id ve Branch Id verilir. Request body içerisinde yer alan device serialNumber parametresi, Android Sdk login methodunda username olarak ve setGmuParameters methodunda deviceId olarak kullanılacaktır.
    • Response kısmında ise işlemin başarılı olmasının ardından Gmu Device Id verisi dönmektedir.
  5. Oluşturulan Device'ın sistem içerisinde tanımlanan şifre vs gibi bilgileri alınır.

    -> GET-/administrative/enterprise/{enterpriseId}/branch/{branchId}/device/info endpointi ile Device bilgileri alınır.

    • İstek atılırken query parameter olarak Device'ın oluşturuldupu Enterprise Id ve Branch Id ile Device'a ait Serial Number ve Gmu Device Id parametreleri verilir.
    • Response kısmında securityInfo parametresi ilgili cihaz için şifre verisini vermektedir. Bu veri Android Sdk login methodunda password olarak kullanılacaktır.
  6. Android Sdk'yı kullanmaya başlamadan önceki son adım olarak, GMU backende App Version tanımlama işlemi yapılmalıdır.

    -> POST /boapi/v2/Auth/Authorize endpointinden Protein ekibi tarafından iletilecek admin kullanıcı bilgileri ile JWT token alınır.

    -> POST /boapi/v2/AppVersionInfo endpointine çağrı yapılır. Request body parametre açıklamaları:

    • appVersion = 1.0.0, appType = 2 verilmelidir. Bu değerler sabittir farklı değerler girilmemelidir.

    • appUniqueId ve appPublicKey parametrelerine, Android Sdk'yı kullanacağınız uygulamanın applicationId'si verilmelidir.

    • htmlContent parametresi ilgili sürümün html formatında notlarını içerir.

    • Örnek request:

      {
      "appVersion": "1.0.0",
      "appPublicKey": "com.protein.poc.app",
      "appUniqueId": "com.protein.poc.app",
      "releaseDate": "2022-11-22T06:11:23.362Z",
      "approvedBy": "Fatih Çelik",
      "appType": 2,
      "htmlContent": "<html><body>Notlar</body></html>"
      }
  7. Yukarıdaki adımlar ile, Android Sdk methodlarından login ve setGmuParameters içinde verilmesi gereken önemli parametreler elde edildi.

    • login -> username 4.adımda, password 5.adımda oluşturuldu.
    • setGmuParameters -> deviceId 4.adımda, applicationId 6.adımda oluşturuldu.

    Detaylı Sdk method açıklamaları için GMU Pos Module Sample Dökümantasyonunu inceleyebilirsiniz.

sequenceDiagram Admin ->> Auth Server(KeyCloak): Authorize Auth Server(KeyCloak) ->> Admin: Token ve Refresh Token Admin ->> GMUPOS API: Create Enterprise GMUPOS API ->> GMU API: Create Customer GMU API ->> GMUPOS API: Tenant Id GMUPOS API ->> Auth Server(KeyCloak): Create Enterprise User Auth Server(KeyCloak) ->> GMUPOS API: User Id GMUPOS API ->> Admin: Enterprise Id Admin ->> GMUPOS API: Create Branch(Enterprise Id) GMUPOS API ->> GMU API: Create Store GMU API ->> GMUPOS API: Store Id GMUPOS API ->> Admin: Branch Id Admin ->> GMUPOS API: Register Device(Branch Id, Terminal No, Serial No, Brand) GMUPOS API ->> GMU API: Create Device GMU API ->> GMUPOS API: Device Id GMUPOS API ->> Auth Server(KeyCloak): Create Device User Auth Server(KeyCloak) ->> GMUPOS API: OK Admin ->> GMUPOS API: Get Device/Info GMUPOS API ->> Admin: Device Security Info(Password) Device ->> Auth Server(KeyCloak): Authorize(Serial Number,Password) Auth Server(KeyCloak) ->> Device: Token ve Refresh Token Device ->> GMUPOS API: Get GMU Credentials(Token) GMUPOS API ->> Device: GMU User ve Password

Onboarding Servislerinde Kullanılan Parametreler ve Açıklamaları

Onboarding akışını yürütürken ihtiyaç duyulan ilgili servisler içindeki parametreler ve açıklamaları aşağıda belirtilmiştir.

ServisDeğişkenTürAçıklamaMinMaxZorunluluk
Enterprisenamestringİşletme adı2200Zorunlu
phoneNumberstringİşletme telefon numarası1013Opsiyonel
addressstringİşletme adresi2250Opsiyonel
firstNamestringYönetici adı250Zorunlu
lastNamestringYönetici soyadı250Zorunlu
phoneNumberstringYönetici telefon numarası1013Opsiyonel
passwordstringYönetici şifresi--Zorunlu
integrationIdstringEğer işletme bir entegrasyon vasıtası ile açılmışsa işletmeyi açan entegrasyondaki Id'si010Opsiyonel
BranchnamestringŞube adı2200Zorunlu
merchantNumberstringİşletme numarası150Zorunlu
merchantCategoryCodestringİşletme kategori kodu--Opsiyonel
emailServiceProductIdintegerE-Posta gönderim servisi plugin Id--Opsiyonel
taxOfficestringVergi dairesi2100Zorunlu
taxNostringVKN veya TCKN bilgisi1011Zorunlu
tradeRegisterNostringTicaret sicil numarası012Opsiyonel (Ticaret Sicil Numarası veya MERSIS alanlarından birinin doldurulması zorunludur
mersisNostringMERSIS numarası016Opsiyonel (Ticaret Sicil Numarası veya MERSIS alanlarından birinin doldurulması zorunludur
websitestringWebsitesi2150Opsiyonel
emailstringE-posta adresi1320Opsiyonel
phoneNumberstringTelefon numarası1013Opsiyonel
faxstringFax numarası1013Opsiyonel
countrystringÜlke330Zorunlu
citystringŞehir330Zorunlu
districtstringİlçe250Opsiyonel
streetNamestringSokak2250Opsiyonel
buildingNumberstringBina numarası250Opsiyonel
buildingNamestringApartman250Opsiyonel
flatNumberstringDaire numarası15Opsiyonel
postalCodestringPosta Kodu05Opsiyonel
typestringBelge tipi (EInvoice, EArchive, Esmm, NonFinancialSlip)--Opsiyonel
gbAliasstringGönderici birim etiketi0128Opsiyonel
idintegerEntegratör Id--Opsiyonel
usernamestringEntegratör kullanıcı adı--Opsiyonel
passwordstringEntegratör şifresi--Opsiyonel
idintegerEntegratör Id--Opsiyonel
additionalPropstringEntegratör ek bilgi (KASA, SUBE vb.)--Opsiyonel
xsltFileBase64stringE-belgeler için dükkana özel fatura xslt şablonu. Verilmezse varsayılan şablon kullanılır--Opsiyonel
xsltLogoFileBase64stringE-belgeler için varsa dükkana özel fatura logosu--Opsiyonel
xsltFooterFileBase64stringE-belgeler için varsa dükkana özel fatura altında yer alacak html şablon--Opsiyonel
xsltSignatureFileBase64stringE-Belgeler için varsa firmaya özel ıslak imza (resim olarak)--Opsiyonel
integrationIDstringEğer şube bir entegrasyon vasıtası ile açılmışsa şubeyi açan entegrasyondaki Id'si016Opsiyonel
orderCancellationTimeintegerAçık Çek Parametresi. CancelChecksDailyJob aktif ise ve şube için bu değer girilmiş ise girili değer günü kadar açık kalmış çekler job tarafından "Canceled" olarak kapatılır--Opsiyonel
shouldContinueLastOpenOrderbooleanAçık işlem izni (default: false)--Zorunlu
cashButtonNamestringNakit butonu ismi--Opsiyonel
creditCardButtonNamestringKredi kartı butonu ismi butonu ismi--Opsiyonel
simpraQuickSetupstringŞubenin bağlı olduğu bayinin SimpraQuick projesi entegrasyonu var ise SimpraQuick projesinin beklediği alanları---
terminalIdstringTerminal Id--Şubenin bağlı olduğu bayinin SimpraQuick projesi entegrasyonu var ise zorunludur
paymentProviderIdstringÖdeme sağlayıcı Id--Şubenin bağlı olduğu bayinin SimpraQuick projesi entegrasyonu var ise zorunludur
paymentProviderApplicationIdstringÖdeme sağlayıcı application id--Şubenin bağlı olduğu bayinin SimpraQuick projesi entegrasyonu var ise zorunludur
additionalPropstringÖdeme sağlayıcı ek bilgi--Opsiyonel
accommodationTaxEnabledbooleanKonaklama vergisi--Opsiyonel
commercialInvoiceEnabledbooleanTicari e-fatura--Opsiyonel
DeviceserialNumberstringCihaz seri numarası164Zorunlu
terminalNumberstringTerminal numarası--Opsiyonel
descriptionstringCihaz ismi--Opsiyonel