1. Ödeme Oluştur

Bağlı APM sağlayıcılarıyla ödeme başlatmak (Otp Tabanlı) için kullanabileceğiniz bir yöntemdir. İlgili yöntem aracılığıyla kullanıcılara güvenlik kodu gönderilerek ödemeler gerçekleştirilmektedir

Ödeme Başlat / Otp Tabanlı

POST {{Base Adres}}/api/paywall/apm/pay/request/otp

Önemli: APM Ödeme Başlatma (Otp Tabanlı) servisini kullanabilmeniz için 'Header' alanında 'apikeypublic' ve 'apiclientpublic' parametrelerini göndermeniz gerekmektedir. PaymentAPI Adresi

Servise gönderilmesi gereken (HEADERS) parametreler şu şekildedir :

ParametreTipZorunluAçıklama

apikeypublic

string

Evet

Üye işyeri panelinden temin etmiş olduğunuz Public Key.

apiclientpublic

string

Evet

Üye işyeri panelinden temin etmiş olduğunuz Public Client.

Servise gönderilmesi gereken (BODY) parametreler şu şekildedir :

ParametreTipZorunluAçıklama

ApmKey

int

Evet (Koşullu)

APM sağlayıcısının Key bilgisi. Bkz: APM

ApmConnectionId

int

Evet (Koşullu)

APM listeleme servisiyle edinilen bağlantılara ait Id (kimlik) bilgisidir. Ödeme ekranınızı dinamik oluşturduğunuz senaryolarda bu parametreyle birlikte ilgili bağlantı üzerinden ödeme başlatabilirsiniz

CurrencyId

int

Evet

Ödeme'nin bağlatılmak istendiği para birimi Bkz: Para Birimleri

SectorId

short?

Hayır

Ödemenin gerçekleştirileceği sektör bilgisi. Sağlayıcılarla paylaşılmaktadır Sektörler

MerchantUniqueCode

string

Evet

Ödeme için oluşturduğunuz tekil numara

Amount

decimal

Evet

Ödeme tutarı

Description

string

Evet

Ödeme'ye ait açıklama. Sağlayıcıya bağlı olarak bu açıklama ödeme ekranında görüntülenebilmektedir.

Payer

Payer

Evet

Ödeme'nin gerçekleştirileceği ödeyici bilgilerinin barındığı nesnedir. Bu nesne altındaki parametrelerin zorunlulukları sağlayıcının beklediği parametreye göre farklılık gösterebilmektedir. Örnek: CardNumber bekleyen bir sağlayıcı için PayWall API'si CardNumber parametresini zorunlu tutar

Products

List<Products>

Hayır

Gönderilmesi, raporlama ve takip anlamında yararlı olacaktır. Bu bilgiler gönderildiği durumda gönderilen ürünlerin toplam tutarı asıl işlem tutarıyla karşılaştırılır. Ancak gönderilmemesi durumunda bir karşılaştırma yapılmamaktadır

Provider:Parameters

Dynamic

Evet/Hayır

Sağlayıcının ödemenin gerçekleşmesi anında beklediği dinamik bilgiler olması durumunda bu parametrelerle ilgili bilgiler dışardan alınır ve sağlayıcılarla paylaşılır. Örnek mağaza kodu, mağaza kimliği gibi bilgileri sağlayıcının beklemesi durumunda bu bilgiler PayWall API'si tarafından kontrol edilir ve zorunlu tutulur.

Servise gönderilecek örnek bir JSON dosyası şu şekildedir :

{
    "ApmKey": "FoodCardProvider",
    "ApmConnectionId": 19,
    "CurrencyId": 1,
    "MerchantUniqueCode": "A1s2d3F4G5H6J7K8L9",
    "Amount": 1,
    "Description": "PW",
    "Payer": {
        "CardNumber": "637578**********",
        "Phone": "",
        "Identity": ""
    },
    "Products": [
        {
            "ProductId": "123",
            "ProductName": "Name",
            "ProductCategory": "Food",
            "ProductDescription": "Description of Product",
            "ProductAmount": 1
        }
    ],
    // MarketPlace tipindeki sağlayıcılar için
    "Provider": {
        // Dynamic
        "Parameters": {
            "MerchantCode": "**********",
            "TerminalCode": "**********"
        }
    }
}

Servisten dönen parametreler şu şekildedir:

ParametreTipAçıklama

ErrorCode

int

Hata kodu. İşlem başarılı ise '0' değerini döner.

Result

bool

True ya da false değeri döner. İşlem başarılı iste 'true' değerini döner.

Message

string

İşlem hatalıysa, bu hataya dair belirtilen mesajdır, locale parametresine göre dil desteği sunar.

Body

nesne

İşlem hatalıysa, bu hataya dair detay nesne

{
    "ErrorCode": 0,
    "Result": true,
    "Message": "",
    "Body": {
        "ApmKey": "FoodCardProvider",
        "ApmConnectionId": 21,
        "ApmTransactionId": 4330,
        "UniqueCode": "85a07d7e-adc4-4698-a4cb-e643bdd705b1",
        "MerchantUniqueCode": "G5H6A4FKAJDLF3457394759834",
        "Amount": 1.0,
        "PendingOtpConfirm": true, // Eğer false ise OTP doğrulama gerekmez
        "ProviderDummyResponse": {
            "ErrorCode": 0,
            "Body": {
                "Success": true,
                "Code": null,
                "Message": null,
                "Status": 0,
                "OtpVerifyCounterInSeconds": 0,
                "Id": 58612,
                "ServiceId": 1000,
                "BatchNo": 102,
                "TransactionSequenceNumber": 35298,
                "TransactionAmount": 100,
                "TransactionApprovalCode": "000000004330",
                "LoyaltyMessage": "",
                "Hash": "fe556fe622f3a3aa2b484666b2d7887c54932a9f469f016c3d00b740ed36de95"
            },
            "HttpCode": 200
        }
    }
}

Last updated