Wallet As A Service
WaaS Entegrasyon Dokümanı
Macellan WaaS (Wallet As A Service), sistemlerinize cüzdan altyapısı sağlamaktadır.
Başlarken bölümünde belirtildiği gibi tüm istekler size iletilen Token ile yapılmalıdır.
Endpointlere ait Postman Collection buradan indirilebilir.
WaaS entegrasyon servisleri, direkt ödeme ve kullanıcı oluşturma gibi kritik işlemler içerdiği için yalnızca tanımlı IP adreslerinden gelen isteklere yanıt verir. Bu servisler istemci uygulamalarından (mobil uygulama, web sitesi vb.) çağrılmamalıdır.
Production ortamına geçmeden önce IP adresleriniz veya IP bloklarınız tarafımıza iletilmeli ve tanımlanmalıdır.
Wallet As A Service Kullanım Yöntemleri
1) iFrame ile Kullanım
Bu yöntemde Macellan SuperApp, uygulamanız içerisinde bir web linkinde açılır ve kullanıcının işlemleri gerçekleştirmesi sağlanır. Bu sayede kullanıcılarınız, cüzdan fonksiyonlarını uygulamanızdan çıkmadan kullanabilir.
PostMessage İletişimi
iFrame içindeki işlemler tamamlandığında, uygulamanıza aşağıdaki olaylar PostMessage olarak iletilir:
| DATA | Açıklama |
|---|---|
{ success: false, event: 'CANCEL_PAYMENT_USER' } | Kullanıcı harcama işlemini iptal ettiğinde |
{ success: false, event: 'CANCEL_PAYMENT_OPERATOR' } | Yetkili harcama işlemini iptal ettiğinde |
{ success: true, event: 'COMPLETE_PAYMENT' } | Harcama işlemi başarıyla tamamlandığında |
{ success: true, event: 'COMPLETE_DEPOSIT' } | Bakiye yükleme işlemi başarıyla tamamlandığında |
{ success: false, event: 'CANCEL_DEPOSIT_USER' } | Kullanıcı bakiye yükleme işlemini iptal ettiğinde |
{ success: false, event: 'FAIL_DEPOSIT' } | Bakiye yükleme işlemi esnasında hata oluştuğunda |
{ success: true, event: 'RETURN_TO_SITE' } | Web'de menüdeki "Siteye Dön" butonuna basıldığında |
{ success: true, event: 'OPEN_URL', data: { url: value } } | Web'de kampanya gibi bileşenler tıklandığında |
{ success: false, event: 'INVALID_QR', data: { message } } | QR içeriği çözümlenemediğinde veya geçersiz olduğunda |
Olaylar, iFrame'den { message: '<JSON string>' } şeklinde iletilir. Bu sebeple event.data.message değeri JSON.parse ile çözümlenmelidir.
React Native WebView kullanıyorsanız (onMessage), aynı JSON string sarmalayıcı olmadan doğrudan iletilir.
// PostMessage dinleyici örneği
window.addEventListener('message', function (event) {
if (!event.data?.message) return
const payload = JSON.parse(event.data.message)
switch (payload.event) {
case 'CANCEL_PAYMENT_USER':
case 'CANCEL_PAYMENT_OPERATOR':
// Harcama iptal edildi işlemleri
break
case 'COMPLETE_PAYMENT':
// Harcama tamamlandı işlemleri
break
case 'COMPLETE_DEPOSIT':
// Bakiye yükleme tamamlandı işlemleri
break
case 'CANCEL_DEPOSIT_USER':
case 'FAIL_DEPOSIT':
// Bakiye yükleme başarısız işlemleri
break
case 'INVALID_QR':
// payload.data.message ile hata sebebine erişilebilir
break
}
})INVALID_QR olayı, redirect_page: qr_content ile açılan cüzdanda QR içeriği çözümlenemediğinde iletilir.
Bu olay dinlenmediğinde kullanıcı, WebView içinde sonuçlanmayan bir yükleme ekranında kalabilir.
2) iFramesiz Kullanım
Bu yöntemde, kullanıcı linkleme ve oluşturma gibi cüzdan fonksiyonu adımları sizin tarafınızdan yapılması gereken entegrasyonlarla gerçekleştirilir. Kısacası, WaaS entegrasyonundaki bazı işlemleri kendiniz oluşturmalısınız.
Cüzdan Uygulamasının Açılması
Bakiye Yükleme İçin Test Kart Bilgileri
| Banka | Kart No | Son K.Tarihi | CVV | 3DS Şifre | Sanal Pos |
|---|---|---|---|---|---|
| AKBANK | 4748 5447 4854 4745 | 12/2023 | 000 | a | |
| AKBANK | 4355 0843 5508 4358 | 12/2023 | 000 | a | |
| AKBANK | 5571 1355 7113 5575 | 12/2023 | 000 | a | |
| AKBANK | 4355 0843 5508 4358 | 12/2026 | 000 | a | |
| FINANSBANK | 4155 6501 0041 6111 | 01/2050 | 715 | ||
| FINANSBANK | 4022 7801 0794 7023 | 01/2041 | 759 | ||
| FINANSBANK | 4022 7801 9828 3155 | 01/2050 | 105 | ||
| AKBANK | 5571 1355 7113 5575 | 12/2026 | 000 | a | Param |
| ISBANK | 4508 0345 0803 4509 | 12/2026 | 000 | a | Param |
| KUVEYTTURK | 5188 9619 3919 2544 | 06/2025 | 929 | 123456 | Kuveyt Turk |
| PAYTR | 4355 0843 5508 4358 | 12/2030 | 000 | PayTR | |
| PAYTR | 5406 6754 0667 5403 | 12/2030 | 000 | PayTR | |
| PAYTR | 9792 0303 9444 0796 | 12/2030 | 000 | PayTR | |
| SIPAY | 4508 0345 0803 4509 | 12/2026 | 000 | a | SIPAY |
| SIPAY | 5406 6754 0667 5403 | 12/2026 | 000 | a | SIPAY |
| SIPAY | 4048 0950 1085 7528 | 05/2028 | 000 | 34020 | SIPAY |
| SIPAY | 4506 3470 2652 3718 | 12/2025 | 000 | 34020 | SIPAY |
| SIPAY | 5400 6170 0000 4909 | 09/2026 | 000 | 34020 | SIPAY |