Ingenico OKC GMP3 Protokol Dokümantasyonu
Eczane, restoran, market ve benzinlik sistemleri için hazır protokol kütüphanesi ve dokümantasyon
from okc_client import OKCClient
# POS bağlantısı
client = OKCClient('192.168.1.245')
# İşlem başlat
trans_id = client.start_transaction()
# Ürün ekle
client.add_item(
name="Aspirin 100mg",
quantity=2,
price=25.50,
vat_rate=8
)
# Ödeme al
success, result = client.process_payment(51.00)
Python, C#, Node.js için hazır client kütüphaneleri
Modern web servisi ve gerçek zamanlı iletişim
Android ve Windows için Progressive Web App
Detaylı hata kodları ve çözüm önerileri
Eczane, restoran, market ve benzinlik entegrasyonları
İnternet kesintilerinde çalışmaya devam
# Python için
pip install -r requirements.txt
# Node.js için
npm install
# Docker ile
docker-compose up -d
from okc_client import OKCClient
client = OKCClient('192.168.1.245', 7500)
if client.ping():
print("POS bağlantısı başarılı!")
else:
print("Bağlantı hatası!")
# İşlem başlat
trans_id = client.start_transaction("KASA1")
# Ürün ekle
client.add_item("Test Ürün", 1, 100.00)
# Ödeme
success, result = client.process_payment(100.00)
TLV yapısı, mesaj formatları ve iletişim detayları
Görüntüle →Adım adım entegrasyon ve best practices
Görüntüle →Tüm metodlar, parametreler ve response'lar
Görüntüle →Tüm hata kodları, anlamları ve çözümleri
Görüntüle →Reçeteli satış, SGK entegrasyonu ve ilaç yönetimi
class PharmacyPOS:
def process_prescription_sale(self, prescription_no, patient_tc):
"""Reçeteli satış işlemi"""
# İşlem başlat
trans_id = self.client.start_transaction("ECZACI1")
# Reçeteli ilaçlar
medicines = [
{
"barcode": "8699532080158",
"name": "AUGMENTIN BID 1000 MG",
"patient_payment": 25.10, # Hasta ödemesi
"sgk_payment": 100.40 # SGK ödemesi
}
]
# Sadece hasta ödemesini POS'a gönder
for med in medicines:
self.client.add_item(
name=med['name'],
unit_price=med['patient_payment'],
vat_rate=8, # İlaç KDV'si
department=Department.MEDICINE
)
# Ödeme işlemi
success, result = self.client.process_payment(
total_patient_payment,
PaymentType.CREDIT_CARD
)
Masa yönetimi, sipariş takibi ve bahşiş hesaplama
class RestaurantPOS:
def close_table(self, table_no, tip_percentage=10):
"""Masa hesabını kapat"""
table = self.tables[table_no]
trans_id = self.client.start_transaction(f"MASA_{table_no}")
# Siparişleri ekle
for item in table['items']:
vat = 8 if item['category'] == 'YEMEK' else 18
self.client.add_item(
name=item['name'],
quantity=item['quantity'],
unit_price=item['price'],
vat_rate=vat,
department=Department.RESTAURANT
)
# Bahşiş ekle
tip = subtotal * (tip_percentage / 100)
total = subtotal + tip
# Ödeme al
success, result = self.client.process_payment(total)
Barkod okuma, kampanya yönetimi ve stok takibi
class MarketPOS:
def checkout(self, payment_type):
"""Kasa işlemi"""
trans_id = self.client.start_transaction("KASIYER1")
for item in self.basket:
# KDV oranını belirle
vat = self.get_vat_rate(item['category'])
self.client.add_item(
name=item['name'],
quantity=item['quantity'],
unit_price=item['price'],
vat_rate=vat,
barcode=item['barcode'],
discount=item.get('discount', 0)
)
# Kampanya indirimi uygula
total = subtotal - campaign_discount
# Ödeme işlemi
success, result = self.client.process_payment(total)
Yakıt satışı, pompa yönetimi ve karma satış
class GasStationPOS:
def fuel_sale(self, pump_no, fuel_type, liters, plate_no):
"""Yakıt satışı"""
trans_id = self.client.start_transaction(f"POMPA_{pump_no}")
# Güncel yakıt fiyatı
price_per_liter = self.fuel_prices[fuel_type]
# Yakıt satışını ekle
self.client.add_item(
name=f"{fuel_type} - {plate_no}",
quantity=liters,
unit_price=price_per_liter,
vat_rate=18,
department=Department.FUEL
)
total = liters * price_per_liter
# Ödeme
success, result = self.client.process_payment(total)
POS trafiğini izleme ve analiz aracı
./network_monitor.sh 192.168.1.245
Transaction loglarını analiz etme
python log_parser.py --file pos.log
Test için POS simülatörü
python pos_simulator.py --port 7500
Test barkodları oluşturma
python barcode_gen.py --type EAN13
| Hata Kodu | Açıklama | Çözüm |
|---|---|---|
0x0825 |
Ödeme başarısız | Kart bilgilerini kontrol edin |
0x2508 |
Kullanıcı vazgeçti | Normal iptal durumu |
0x0826 |
Yetersiz bakiye | Başka kart deneyin |
0x0827 |
Kart blokeli | Banka ile iletişime geçin |
0x0829 |
Kartın süresi dolmuş | Geçerli kart kullanın |
Dokümantasyon, kaynak kodlar ve örneklerin tamamını indirin