🔐Yetkilendirme
Client tarafta yapacağınız işlemler için sunucu tarafından geçici bir token almanız gerekmektedir. Bu token bilgisini sunucunuzdan aşağıdaki adres ve parametrelerle alabilirsiniz
TempToken
POST
{{Base Adres}}/api/paywall/temptoken
Önemli: TempToken servisini kullanabilmeniz için 'Header' alanında 'apikeypublic' ve 'apiclientpublic' parametrelerini göndermeniz gerekmektedir. PaymentAPI Adresi
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 parametreler şu şekildedir:
ClientCardSave
boolean
Evet
Token, client tarafta kart saklama için kullanılacak mı?
ThreeDSession
boolean
Evet
Token, client tarafta 3D işlem yapmak için kullanılacak mı?
ExpiryMin
int
Evet
Token, kaç dakika geçerli olacak? 0 ile 30 arasında tanım yapılabilir
Servise gönderilecek örnek JSON ve örnek kodlar aşağıdaki gibidir.
{
"ClientCardSave": true,
"ThreeDSession": false,
"ExpiryMin": 30
}
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
class Program
{
static readonly HttpClient client = new HttpClient();
static async Task Main()
{
var url = "{{MemberBaseAddress}}/api/paywall/member";
var data = new
{
IsSubMerchant = true,
MemberType = 1,
MemberExternalId = "111aa11135552244413",
MemberName = "Intranet Technology",
MemberTitle = "Intranet Technology Yazılım A.S",
MemberTaxOffice = "Besiktas",
MemberTaxNumber = "4651176935",
MemberIdentityNumber = "11111111110",
MemberEmail = "member@paywall.one",
MemberPhone = "5554443322",
MemberAddress = "test adresi",
ContactName = "Member Name",
ContactLastname = "Lastname",
BankAccounts = new[]
{
new {
CurrencyId = 1,
Title = "Ünvan",
Iban = "TR370006400012345678987654"
}
},
ValueDate = new
{
CalculationType = 1,
CalculationValue = 10,
Commission = 10
}
};
var json = JsonConvert.SerializeObject(data);
var content = new StringContent(json, Encoding.UTF8, "application/json");
content.Headers.Add("apikeypublic", "%PUBLICKEY%");
content.Headers.Add("apiclientpublic", "%PUBLICCLIENT%");
var response = await client.PostAsync(url, content);
if (response.IsSuccessStatusCode)
{
var responseBody = await response.Content.ReadAsStringAsync();
dynamic result = JsonConvert.DeserializeObject(responseBody);
Console.WriteLine($"ErrorCode: {result.ErrorCode}");
Console.WriteLine($"Result: {result.Result}");
Console.WriteLine($"Message: {result.Message}");
if (result.Body != null)
{
dynamic body = result.Body;
Console.WriteLine($"Id: {body.Id}");
Console.WriteLine($"IsSubMerchant: {body.IsSubMerchant}");
Console.WriteLine($"MemberType: {body.MemberType}");
Console.WriteLine($"MemberExternalId: {body.MemberExternalId}");
Console.WriteLine($"MemberName: {body.MemberName}");
Console.WriteLine($"MemberTitle: {body.MemberTitle}");
Console.WriteLine($"MemberTaxOffice: {body.MemberTaxOffice}");
Console.WriteLine($"MemberTaxNumber: {body.MemberTaxNumber}");
Console.WriteLine($"MemberEmail: {body.MemberEmail}");
Console.WriteLine($"MemberPhone: {body.MemberPhone}");
Console.WriteLine($"MemberAddress: {body.MemberAddress}");
Console.WriteLine($"ContactName: {body.ContactName}");
Console.WriteLine($"ContactLastname: {body.ContactLastname}");
Console.WriteLine($"InsertDateTime: {body.InsertDateTime}");
}
}
}
}
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
type RequestData struct {
IsSubMerchant bool `json:"IsSubMerchant"`
MemberType int `json:"MemberType"`
MemberExternalId string `json:"MemberExternalId"`
MemberName string `json:"MemberName"`
MemberTitle string `json:"MemberTitle"`
MemberTaxOffice string `json:"MemberTaxOffice"`
MemberTaxNumber string `json:"MemberTaxNumber"`
MemberIdentityNumber string `json:"MemberIdentityNumber"`
MemberEmail string `json:"MemberEmail"`
MemberPhone string `json:"MemberPhone"`
MemberAddress string `json:"MemberAddress"`
ContactName string `json:"ContactName"`
ContactLastname string `json:"ContactLastname"`
BankAccounts []BankAccount `json:"BankAccounts"`
ValueDate ValueDate `json:"ValueDate"`
}
type BankAccount struct {
CurrencyId int `json:"CurrencyId"`
Title string `json:"Title"`
Iban string `json:"Iban"`
}
type ValueDate struct {
CalculationType int `json:"CalculationType"`
CalculationValue int `json:"CalculationValue"`
Commission int `json:"Commission"`
}
type ResponseData struct {
ErrorCode int `json:"ErrorCode"`
Result bool `json:"Result"`
Message string `json:"Message"`
Body BodyData `json:"Body"`
}
type BodyData struct {
Id int `json:"Id"`
IsSubMerchant bool `json:"IsSubMerchant"`
MemberType int `json:"MemberType"`
MemberExternalId string `json:"MemberExternalId"`
MemberName string `json:"MemberName"`
MemberTitle string `json:"MemberTitle"`
MemberTaxOffice string `json:"MemberTaxOffice"`
MemberTaxNumber string `json:"MemberTaxNumber"`
MemberIdentityNumber string `json:"MemberIdentityNumber"`
MemberEmail string `json:"MemberEmail"`
MemberPhone string `json:"MemberPhone"`
MemberAddress string `json:"MemberAddress"`
ContactName string `json:"ContactName"`
ContactLastname string `json:"ContactLastname"`
InsertDateTime string `json:"InsertDateTime"`
}
func main() {
url := "{{MemberBaseAddress}}/api/paywall/member"
data := RequestData{
IsSubMerchant: true,
MemberType: 1,
MemberExternalId: "111aa11135552244413",
MemberName: "Intranet Technology",
MemberTitle: "Intranet Technology Yazılım A.S",
MemberTaxOffice: "Besiktas",
MemberTaxNumber: "4651176935",
MemberIdentityNumber: "11111111110",
MemberEmail: "member@paywall.one",
MemberPhone: "5554443322",
MemberAddress: "test adresi",
ContactName: "Member Name",
ContactLastname: "Lastname",
BankAccounts: []BankAccount{
{
CurrencyId: 1,
Title: "Ünvan",
Iban: "TR370006400012345678987654",
},
},
ValueDate: ValueDate{
CalculationType: 1,
CalculationValue: 10,
Commission: 10,
},
}
requestBody, _ := json.Marshal(data)
client := &http.Client{}
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(requestBody))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("apikeypublic", "%PUBLICKEY%")
req.Header.Set("apiclientpublic", "%PUBLICCLIENT%")
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
var responseData ResponseData
json.Unmarshal(body, &responseData)
fmt.Println("ErrorCode:", responseData.ErrorCode)
fmt.Println("Result:", responseData.Result)
fmt.Println("Message:", responseData.Message)
fmt.Println("Body.Id:", responseData.Body.Id)
fmt.Println("Body.IsSubMerchant:", responseData.Body.IsSubMerchant)
fmt.Println("Body.MemberType:", responseData.Body.MemberType)
fmt.Println("Body.MemberExternalId:", responseData.Body.MemberExternalId)
fmt.Println("Body.MemberName:", responseData.Body.MemberName)
fmt.Println("Body.MemberTitle:", responseData.Body.MemberTitle)
fmt.Println("Body.MemberTaxOffice:", responseData.Body.MemberTaxOffice)
fmt.Println("Body.MemberTaxNumber:", responseData.Body.MemberTaxNumber)
fmt.Println("Body.MemberIdentityNumber:", responseData.Body.MemberIdentityNumber)
fmt.Println("Body.MemberEmail:", responseData.Body.MemberEmail)
fmt.Println("Body.MemberPhone:", responseData.Body.MemberPhone)
fmt.Println("Body.MemberAddress:", responseData.Body.MemberAddress)
fmt.Println("Body.ContactName:", responseData.Body.ContactName)
fmt.Println("Body.ContactLastname:", responseData.Body.ContactLastname)
fmt.Println("Body.InsertDateTime:", responseData.Body.InsertDateTime)
}
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
import org.json.JSONArray;
import org.json.JSONObject;
public class Main {
public static void main(String[] args) {
try {
URL url = new URL("{{MemberBaseAddress}}/api/paywall/member");
JSONObject jsonObject = new JSONObject();
jsonObject.put("IsSubMerchant", true);
jsonObject.put("MemberType", 1);
jsonObject.put("MemberExternalId", "111aa11135552244413");
jsonObject.put("MemberName", "Intranet Technology");
jsonObject.put("MemberTitle", "Intranet Technology Yazılım A.S");
jsonObject.put("MemberTaxOffice", "Besiktas");
jsonObject.put("MemberTaxNumber", "4651176935");
jsonObject.put("MemberIdentityNumber", "11111111110");
jsonObject.put("MemberEmail", "member@paywall.one");
jsonObject.put("MemberPhone", "5554443322");
jsonObject.put("MemberAddress", "test adresi");
jsonObject.put("ContactName", "Member Name");
jsonObject.put("ContactLastname", "Lastname");
JSONArray bankAccounts = new JSONArray();
JSONObject bankAccount = new JSONObject();
bankAccount.put("CurrencyId", 1);
bankAccount.put("Title", "Ünvan");
bankAccount.put("Iban", "TR370006400012345678987654");
bankAccounts.put(bankAccount);
jsonObject.put("BankAccounts", bankAccounts);
JSONObject valueDate = new JSONObject();
valueDate.put("CalculationType", 1);
valueDate.put("CalculationValue", 10);
valueDate.put("Commission", 10);
jsonObject.put("ValueDate", valueDate);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("apikeypublic", "%PUBLICKEY%")
conn.setRequestProperty("apiclientpublic", "%PUBLICCLIENT%")
OutputStream os = conn.getOutputStream();
os.write(jsonObject.toString().getBytes());
os.flush();
if (conn.getResponseCode() != HttpURLConnection.HTTP_CREATED) {
throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode());
}
Scanner scan = new Scanner(url.openStream());
String entireResponse = new String();
while (scan.hasNext())
entireResponse += scan.nextLine();
System.out.println("Response : "+entireResponse);
scan.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
<?php
$url = '{{MemberBaseAddress}}/api/paywall/member';
$header = array(
'Content-Type: application/json',
'apikeypublic: %%',
'apiclientpublic: %%'
);
$data = array(
'IsSubMerchant' => true,
'MemberType' => 1,
'MemberExternalId' => '111aa11135552244413',
'MemberName' => 'Intranet Technology',
'MemberTitle' => 'Intranet Technology Yazılım A.S',
'MemberTaxOffice' => 'Besiktas',
'MemberTaxNumber' => '4651176935',
'MemberIdentityNumber' => '11111111110',
'MemberEmail' => 'member@paywall.one',
'MemberPhone' => '5554443322',
'MemberAddress' => 'test adresi',
'ContactName' => 'Member Name',
'ContactLastname' => 'Lastname',
'BankAccounts' => array(
array(
'CurrencyId' => 1,
'Title' => 'Ünvan',
'Iban' => 'TR370006400012345678987654'
)
),
'ValueDate' => array(
'CalculationType' => 1,
'CalculationValue' => 10,
'Commission' => 10
)
);
$context = stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => $header,
'content' => json_encode($data),
)
));
$result = file_get_contents($url, false, $context);
?>
import requests
import json
url = '{{MemberBaseAddress}}/api/paywall/member'
headers = {
'Content-Type': 'application/json',
'apikeypublic': '%%',
'apiclientpublic': '%%'
}
data = {
'IsSubMerchant': True,
'MemberType': 1,
'MemberExternalId': '111aa11135552244413',
'MemberName': 'Intranet Technology',
'MemberTitle': 'Intranet Technology Yazılım A.S',
'MemberTaxOffice': 'Besiktas',
'MemberTaxNumber': '4651176935',
'MemberIdentityNumber': '11111111110',
'MemberEmail': 'member@paywall.one',
'MemberPhone': '5554443322',
'MemberAddress': 'test adresi',
'ContactName': 'Member Name',
'ContactLastname': 'Lastname',
'BankAccounts': [
{
'CurrencyId': 1,
'Title': 'Ünvan',
'Iban': 'TR370006400012345678987654'
}
],
'ValueDate': {
'CalculationType': 1,
'CalculationValue': 10,
'Commission': 10
}
}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.json())
require 'uri'
require 'net/http'
require 'json'
url = URI("{{MemberBaseAddress}}/api/paywall/member")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["apikeypublic"] = '%%'
request["apiclientpublic"] = '%%'
request.body = JSON.dump({
"IsSubMerchant" => true,
"MemberType" => 1,
"MemberExternalId" => '111aa11135552244413',
"MemberName" => 'Intranet Technology',
"MemberTitle" => 'Intranet Technology Yazılım A.S',
"MemberTaxOffice" => 'Besiktas',
"MemberTaxNumber" => '4651176935',
"MemberIdentityNumber" => '11111111110',
"MemberEmail" => 'member@paywall.one',
"MemberPhone" => '5554443322',
"MemberAddress" => 'test adresi',
"ContactName" => 'Member Name',
"ContactLastname" => 'Lastname',
"BankAccounts" => [
{
"CurrencyId" => 1,
"Title" => 'Ünvan',
"Iban" => 'TR370006400012345678987654'
}
],
"ValueDate" => {
"CalculationType" => 1,
"CalculationValue" => 10,
"Commission" => 10
}
})
response = http.request(request)
puts response.read_body
import axios from 'axios';
const url = '{{MemberBaseAddress}}/api/paywall/member';
const headers = {
'Content-Type': 'application/json',
'apikeypublic': '%%',
'apiclientpublic': '%%'
};
const data = {
'IsSubMerchant': true,
'MemberType': 1,
'MemberExternalId': '111aa11135552244413',
'MemberName': 'Intranet Technology',
'MemberTitle': 'Intranet Technology Yazılım A.S',
'MemberTaxOffice': 'Besiktas',
'MemberTaxNumber': '4651176935',
'MemberIdentityNumber': '11111111110',
'MemberEmail': 'member@paywall.one',
'MemberPhone': '5554443322',
'MemberAddress': 'test adresi',
'ContactName': 'Member Name',
'ContactLastname': 'Lastname',
'BankAccounts': [
{
'CurrencyId': 1,
'Title': 'Ünvan',
'Iban': 'TR370006400012345678987654'
}
],
'ValueDate': {
'CalculationType': 1,
'CalculationValue': 10,
'Commission': 10
}
};
axios.post(url, data, { headers })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
curl --location --request POST '{{MemberBaseAddress}}/api/paywall/member' \
--header 'Content-Type: application/json' \
--header 'apikeypublic: %%' \
--header 'apiclientpublic: %%' \
--data-raw '{
"IsSubMerchant": true,
"MemberType": 1,
"MemberExternalId": "111aa11135552244413",
"MemberName": "Intranet Technology",
"MemberTitle": "Intranet Technology Yazılım A.S",
"MemberTaxOffice": "Besiktas",
"MemberTaxNumber": "4651176935",
"MemberIdentityNumber": "11111111110",
"MemberEmail": "member@paywall.one",
"MemberPhone": "5554443322",
"MemberAddress": "test adresi",
"ContactName": "Member Name",
"ContactLastname": "Lastname",
"BankAccounts": [
{
"CurrencyId": 1,
"Title": "Ünvan",
"Iban": "TR370006400012345678987654"
}
],
"ValueDate": {
"CalculationType": 1,
"CalculationValue": 10,
"Commission": 10
}
}'
Servisten dönen parametreler şu şekildedir:
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 detay bilgileri
{
"ErrorCodeType": 1,
"ErrorMessage": null,
"ErrorCode": 0,
"Result": true,
"Message": "",
"Body": {
"TempTokenId": 14533994,
"Token": "22ae3b5a-8eb0-41cc-88c7-219e25b95441",
"ExpiryDateTime": "2024-06-13T22:25:08.0404774+03:00",
"Scope": {
"ClientCardSave": true,
"ThreeDSession": false
}
}
}
Last updated