1. Ödeme Başlat

Bağlı APM sağlayıcılarıyla DirectPay tabanlı ödeme başlatmak için kullanabileceğiniz bir metottur.

Ödeme Başlat (Id)

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

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

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

Parametre
Tip
Zorunlu
Açı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 :

Parametre
Tip
Zorunlu
Açıklama

ApmKey

int

Evet (Koşullu)

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

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": {
        "Fullname": "",
        "CardNumber": "",
        "CardId": "",
        "Phone": "",
        "Email": "",
        "UserIdentity": "",
        "ConsumerIdentity": "",
        "Birthday": null
    },
    "Products": [
        {
            "ProductId": "123",
            "ProductName": "Name",
            "ProductCategory": "Food",
            "ProductDescription": "Description of Product",
            "ProductAmount": 1
        }
    ],
    // MarketPlace tipindeki sağlayıcılar içindir,
    // kullanılmaması durumunda null gönderilebilir
    "Provider": {
        // Dynamic
        "Parameters": {
            "MerchantCode": "**********",
            "TerminalCode": "**********"
        }
    }
}

Servisten dönen parametreler şu şekildedir:

Parametre
Tip
Açı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

Önemli: PendingOtpConfirm parametresinin TRUE gelmesi durumunda Ödeme Onayla sayfasındaki istekle birlikte ödemeyi onaylamalısınız

{
    "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