PosFix ödeme, cüzdan ve diğer servisler, dünya standartlarına uygun yapıda ve tüm yazılımlarla entegre olarak çalışabilecek şekilde oturum bilgisi tutmayan (stateless) Restful servis odaklı bir mimaride geliştirilmiştir. Yine bu rehbere eşlik edecek örnek projeler sayesinde PosFix servislerine çok daha kolay entegre olabilirsiniz.
PosFix servislerine, servis yapılarına göre XML veya JSON formatında veri göndererek ve alarak hızlıca entegre olabilirsiniz. Yaptığınız işlemlerin sonuçlarını PosFix kurumsal panelinden rahatlıkla takip edebilirsiniz.
Yine bu rehber sayesinde entegrasyon adımlarını, istediğiniz yazılım dilinde kolayca gerçekleştirebileceksiniz. PosFix github hesabı üzerinden bu örnek projelere erişebildiğiniz gibi burada da ilgili kod parçalarını görebileceksiniz. PosFix servislerini kullanabilmek için bir kurum hesabı oluşturmanız gereklidir.
Private Key'iniz size özeldir ve hiç bir şekilde paylaşmamamızı veya herhangi bir çağrıda açık olarak göndermemenizi rica ederiz.
Test modundaki bilgiler ve sorgular ile canlı ortamdaki bilgi ve sorgular ve sonuçları birbirinden bağımsız olarak çalışır.
PosFix entegrasyon için, tüm yazılım dilleriyle entegre olabilir yapıları sunar. Bunun yanında bu rehber boyunca aşağıdaki dillerde örnek kodlara ve github üzerinden örnek projelere de ulaşarak hızlıca entegrasyon sağlayabilirsiniz.
Canlı ortamda PosFix'in apilerine gönderilen parametrelere müşteriden alınan bilgiler ilgili alanlara koyularak gönderilmelidir. Canlı ortamda hiç bir şekilde sabit, dummy değerler ilgili servislere gönderilmemelidir. Örnek projelerde yer alan örnek değerler sizin konuyu daha kolay anlamanıza yardımcı olmak amacıyla vardır. Müşteri, ürün, miktar gibi bilgilerin tümü müşterilerizin beyan ettiği veya veritabanınızdan gelecek değerler olmalıdır. Bu sahteciliği önlemek adına çok önemlidir. Entegrasyon sonrası, test işlemlerinde gönderilen parametreler PosFix kurum panelinizdeki sipariş arama sayfası üzerinden mutlaka kontrol edilmeli ve doğru gönderildiğinden emin olunmalıdır.
PosFix bir kere canlıya geçtikten sonra test geliştirmelerine devam edebilmeniz için her servis çağrısında o çağrının test ortamda mı yoksa canlı ortam için mi yapıldığını sağlamak adına bu bilgiyi sizden bir parametre olarak ister.
Test modu gerçek kart bilgisi kullanmaya gerek kalmadan test ödemeleri yapmanızı sağlayan bir ödeme modudur. Bu sayede SMS ile 3D secure doğrulaması yapmadan testlerinizi hızlıca yapabilirsiniz. Ayrıca test ödemelerinde gerçek bir banka posu kullanılmadığından, ödeme gerçek kart bilgileri ile yapıldığında bile test kartlarından para çekilmeyecektir. Test modunda ödeme yapabilmek için ödeme isteklerinizde mode parametresini 'T' olarak yollamanız gerekmektedir. PosFix panelinizdeki 'Sipariş Arama' sayfasında sağ alttaki 'Test Ödemeleri' tercihi ile arama yaptığınız zaman test ödemelerinizi görebilirsiniz. Test işlemlerinizi bitirdikten sonra gerçek ödeme tahsilatı için mode parametresini 'P' olarak yollamanız gerekmektedir.
PosFix’in size sunduğu tüm servislerin güvenliğini sağlamak işlemin sizin tarafınızdan gönderildiğini ve cevabın PosFix tarafından size gönderildiği karşılıklı olarak doğrulamak için oluşturduğu bir yöntem hash bilgisinin karşılıklı olarak iletilmesidir. Hash bilgisinin üretilebilmesi için çeşitli veriler birleştirilir ve bu birleştirilen verilerin sonucunda yapılan bir işlemle kısa bir 'string' oluşturulur. Bu bilgiyi alan tarafta aynı hash verisini oluşturursa aradaki iletişimin güvenli olduğuna karar verilir ve işlemlere devam edilir.
Hash fonksiyonu aşağıdaki şekilde oluşturulur ve çağrılır:
hashString: Her serviste deklare edilen ve her servise özgü, değişen verilerin yanyana birleştirilmesi sonucu ortaya çıkan değer (String Concatate)
PublicKey: Mağaza Açık Anahtarınız
Hash: PublicKey:Base64(SHA1(HashString))
Bir zincir halinde birleştirilerek oluşturulan hashString verisi önce SHA-1 algoritması ile hashlenir ve ardından Base64 formatına çevrilir. Daha sonra mağaza açık anahtarı ile birlikte arada iki nokta (:) olacak şekilde birleştirilir ve ilgili alanda gönderilir.
Veri Örneği: token = “ASKJH98675ASDASDPO:jhsa/gd+89dfg0df6SA/dfg8967==”
*Mağaza Açık Anahtarı
*HashString’in önce SHA1 algoritmasından geçirilmiş ve ardından Base64 formatına çevrilmiş hali.
Bu araç sayesinde verilerinizi birbirine ekleyerek anında hash(token) oluşturabilirsiniz, böylece kendi entegrasyonunuzda oluşturduğunuz token bilgisini karşılaştırabilirsiniz.
İlgili örnek projeleri daha rahat kavrayabilmek adına mimariyi ve birkaç öneriyi sizinle paylaşmak isteriz:
PosFix ödeme, cüzdan ve diğer servisler, dünya standartlarına uygun yapıda ve tüm yazılımlarla entegre olarak çalışabilecek şekilde oturum bilgisi tutmayan (stateless) Restful servis odaklı bir mimaride geliştirilmiştir.
JSON tabanlı olarak çalışan bir restful servisidir. Türkiye genelinde tanımlı olan tüm yerli kartlara ait BIN numaraları için sorgulama yapılmasına izin verir. Bu servise sorgulanmak istenen kredi veya debit kart numarasının ilk 6 hanesi (Bin Numarası), karttan tahsil edilecek tutar ve threeD/nonSecure bilgisi iletilerek, bu bin numarası için üye işyeri bazlı PosFix'deki konfigürasyona istinaden taksit desteği olup olmadığı, taksit olması durumunda tahsil edilecek tutar üzerine eklenecek komisyon bilgisi gibi bilgiler elde edilir.
Bin sorgulama V2 servisinin genel kullanımı, kart numarası girilmeye başladığı anda karta yönelik taksit imkanlarının sorgulanmasıdır.
Bin numarası sorgulaması için kredi/debit kart numarasının ilk 6 hanesi, karttan tahsil edilecek tutar bilgisi ve ödemenin threeD/nonSecure bilgisi JSON formatında hazırlanarak, https://api.posfix.com.tr/rest/payment/bin/lookup/v2 adresine gerekli güvenlik bilgileri http header bilgisine eklenerek post edilir. PosFix işlem sonucunu yine JSON formatında mağazaya döner.
PosFix, güvenlik kontrolleri için, mağazadan bazı bilgileri HTTP Header alanında istemektedir. Aşağıda bu bilgilerin tanımları bulunmaktadır:
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
transactionDate |
İstek zamanı “yyyy-MM-dd HH:mm:ss“ formatındadır. İşlem zaman aşımına uğramış ise istek reddedilir. |
Zorunlu |
version |
Entegrasyon versiyon bilgisidir. “1.0” olarak gönderilmelidir. |
Zorunlu |
token |
“publicKey:hash” bilgisidir. |
Zorunlu |
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
binNumber |
Kredi veya Debit Kart numarasının ilk 6 hanesi. Örnek: 428220 |
Zorunlu |
amount |
Kredi kartından tahsil edilecek tutar. |
Zorunlu |
threeD |
Ödemenin threeD/nonSecure bilgisi. |
Zorunlu |
Parametre Adı | Açıklama |
---|---|
result |
İşlem sonucu |
errorMessage | Hata Mesajı |
errorCode | Hata Kodu |
bankId | Banka id bilgisi. Tüm Türkiye de geçerli olan banka ID bilgisidir. |
bankName | Banka adı bilgisi |
cardFamilyName | Kart aile bilgisi |
supportsInstallment |
Taksit destekleme durumu |
type |
Kart tipi 0 – Kart tipi bilinmiyor 1 – Kredi Kartı 2 – Debit Kart |
serviceProvider |
Servis sağlayıcısı 0 – Servis sağlayıcı bilinmiyor. 1 – Mastercard 2 – Visa 3 – Amex 4 - Troy |
cardThreeDSecureMandatory |
3D güvenlik adımı zorunluluğu. Bu alan değeri kart ailesinin 3D Secure zorunluluğuna bağlı olarak zorunlu olabilir. 0 – 3D Secure zorunlu değil. 1 – 3D Secure zorunlu |
merchantThreeDSecureMandatory |
3D güvenlik adımı zorunluluğu. Bu alan değeri mağazanın 3D Secure zorunluluğuna bağlı olarak zorunlu olabilir. 0 – 3D Secure zorunlu değil. 1 – 3D Secure zorunlu |
cvcMandatory |
CVC/CVV bilgisinin gönderim zorunluluğu. Bu alan değeri hem mağazanın CVC/CVV zorunluluğuna hem de bin numarasının CVC/CVV zorunluluğuna bağlı olarak zorunlu olabilir. 0 – CVC/CVV’siz ödeme kabulü yapılabilir. 1 – CVC/CVV gönderimi zorunludur. |
businessCard |
Ticari kart bilgisi 1 – Ticari kart 0 – Bireysel kart Ticari kartlar ile mağaza taksit aktifliği kapalı olsa dahi taksit yapılabilir. Desteklenen taksitler için supportedInstallments alanını kullanabilirsiniz. |
installmentDetail |
Desteklenen taksit listesidir. Bu alan değeri hem mağazanın taksit aktifliği hem de ilgili bin numarasının taksit desteğine göre hesaplanmaktadır. |
//Request
BinNumberInquiryRequest request = new BinNumberInquiryRequest();
request.binNumber = "492130";
BinNumberInquiryResponse response = BinNumberInquiryRequest.Execute(request, settings);
//request
private static final String PUBLIC_KEY = "publick_key";
private static final String PRIVATE_KEY = "private_key";
private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
private static final String REQUEST_URL = "https://api.posfix.com.tr/rest/payment/bin/lookup/v2";
public static void main(String[] args) throws Exception {
getInstallmentAndAmountInfo();
}
private static void getInstallmentAndAmountInfo() throws Exception {
RequestObject requestObject = createRequestObject();
String timeStamp = getTransactionDate();
String hashValues = (PRIVATE_KEY + requestObject.getBinNumber() + timeStamp);
String hash = StringUtil.getSHA1Text(hashValues); String token = PUBLIC_KEY + ":" + hash;
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(0, new
StringHttpMessageConverter(Charset.forName("UTF-8")));
MultiValueMap headers = new LinkedMultiValueMap<>();
headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_UTF8_VALUE);
headers.add(DirectPaymentIntegrationFieldNames.TRANSACTION_DATE.getText(), timeStamp);
headers.add(DirectPaymentIntegrationFieldNames.LANGUAGE.getText(), "tr-TR");
headers.add(DirectPaymentIntegrationFieldNames.VERSION.getText(), "1.0");
headers.add(DirectPaymentIntegrationFieldNames.TOKEN.getText(), token);
RequestEntity requestEntity = new RequestEntity<>(requestObject, headers,
HttpMethod.POST, UriComponentsBuilder.fromHttpUrl(REQUEST_URL).build().toUri());
ResponseEntity
responseEntity = restTemplate.exchange(requestEntity, String.class);
}
private static RequestObject createRequestObject() {
RequestObject obj = new RequestObject();
obj.setBinNumber("450634");
obj.setAmount("5000");
obj.setThreeD(true);
return obj;
}
private static String getTransactionDate() {
return new SimpleDateFormat(DATE_FORMAT).format(new Date());
}
//request
$request = new BinNumberInquiryRequest();
$request->binNumber="492130";
$response=BinNumberInquiryRequest::execute($request,$settings);
//request
posfix.BinNumberInquiryRequest(492130).then(requestResult => {
res.json(requestResult)
}).catch(err => {
throw new Error(err)
})
//request
req=Binnumberrequest.new
req.binNumber = params[:binNumber]
@@returnData= req.execute(req,@@settings)
//request
req = BinNumberRequest()
req.binNumber = request.POST.get('binNumber')
response = req.execute(req, config)
//Request
{
"binNumber" : "428220",
"amount" : "5000",
"threeD" : true
}
//Response
{
"bankId": 62,
"bankName": "Garanti Bankası",
"cardFamilyName": "BONUS",
"supportsInstallment": 1,
"type": 1,
"serviceProvider": 2,
"result": 1,
"cardThreeDSecureMandatory": 0,
"merchantThreeDSecureMandatory": 0,
"cvcMandatory": 0,
"businessCard": 0,
"installmentDetail": [
{
"requiredAmount": "5152",
"requiredCommissionAmount": "148",
"installment": 1,
"merchantCommissionRate": "2.95"
},
{
"requiredAmount": "5265",
"requiredCommissionAmount": "252",
"installment": 2,
"merchantCommissionRate": "5.03"
},
{
"requiredAmount": "5352",
"requiredCommissionAmount": "329",
"installment": 3,
"merchantCommissionRate": "6.58"
},
{
"requiredAmount": "5445",
"requiredCommissionAmount": "409",
"installment": 4,
"merchantCommissionRate": "8.17"
},
{
"requiredAmount": "5537",
"requiredCommissionAmount": "485",
"installment": 5,
"merchantCommissionRate": "9.7"
},
{
"requiredAmount": "5630",
"requiredCommissionAmount": "560",
"installment": 6,
"merchantCommissionRate": "11.19"
}
]
}
Mağaza, müşteri üyelik bilgilerini ve kart bilgilerini aldıktan sonra, ödeme verilerini XML formatında hazırlayarak https://api.posfix.com.tr/rest/payment/auth web servis adresine gerekli güvenlikbilgilerini http header bilgisine ekleyerek post eder. PosFix işlem sonucunu yine XML formatında mağazaya döner.
PosFix, güvenlik kontrolleri için, mağazadan bazı bilgileri HTTP Header alanında istemektedir. Aşağıda bu bilgilerin tanımları bulunmaktadır:
PosFix, güvenlik kontrolleri için, mağazadan bazı bilgileri HTTP Header alanında istemektedir. Aşağıda bu bilgilerin tanımları bulunmaktadır:
HttpHeader Güvenlik ParametreleriParametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
transactionDate |
İstek zamanı. “yyyy-MM-dd HH:mm:ss“ formatındadır. İşlem zaman aşımına uğramış ise istek reddedilir. Örnek: “2014-08-12 23:59:59” İlgili kütüphane içindeki GetTransactionDate() fonksiyonundan elde edilebilir. |
Zorunlu |
version |
Entegrasyon versiyon bilgisidir. “1.0” olarak gönderilmelidir. |
Zorunlu |
token |
“publicKey:hash” bilgisidir. Hash bilgisi; 'privateKey + orderId + amount + mode + (*)cardOwnerName + (*)cardNumber + (*)cardExpireMonth + (*)cardExpireYear + (*)cardCvc + (*)userId + (*)cardId + purchaser.name + purchaser.surname + purchaser.email + transactionDate' alanlarını birbirlerine, verilen sıra ile ekleyerek, SHA1 kriptografik hash fonksiyonun base64 methodu ile encode edilmesi sonucunda oluşur. Hash oluşturma fonksiyonu örnekleri burada anlatılmıştır. |
Zorunlu |
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
mode |
İstek modu. “P” veya “T” gönderilmelidir. |
Zorunlu |
threeD |
3D Secure olmadan gerçekleştirilen ödeme işlemlerinde “false” olarak gönderilmelidir. |
Zorunlu |
orderId |
Mağazanın ilgili sipariş ile ilişkilendirdiği her bir istek için benzersiz olan tekil sipariş kodu. Maksimum Uzunluk: 100 karakter. |
Zorunlu |
cardOwnerName |
Kart üzerindeki ad. Minimum Uzunluk: 4 - Maksimum Uzunluk: 100 karakter |
* |
cardNumber |
Kart numarası. Minimum Uzunluk: 12 - Maksimum Uzunluk: 19 karakter. |
* |
cardExpireMonth |
Kart son kullanma tarihi ay parametresi Uzunluk: 2 karakter. Örnek; 05,11, vb. |
* |
cardExpireYear |
Kart son kullanma tarihi yıl parametresi. Uzunluk: 2 karakter. Örnek; 14,19, vb. |
* |
cardCvc |
Kartın arkasındaki güvenlik kodu: Uzunluk: MasterCard ve Visa kartları için 3 karakter, Amex kartlar için 3 veya 4 karakter. |
* |
userId |
Mağaza kullanıcısını referans eden bilgi. Maksimum uzunluk 255 karakter. |
* |
cardId |
Mağaza kullanıcısının kartını referans eden kart kaydetme işlemi sonucunda oluşan id bilgisi. |
* |
installment |
Taksit Sayısı. Minimum Uzunluk: 1 - Maksimum Uzunluk: 2 karakter.Desteklenen taksit sayıları: 1,2,3,4,5,6,7,8,9,10,11,12 |
Zorunlu |
amount |
Karttan çekilecek olan toplam sipariş tutarı. Sipariş tutarı kuruş ayracı olmadan gönderilmelidir. Örneğin; 1 TL 100, 12 1200, 130 13000, 1.05 105, 1.2 120 olarak gönderilmelidir. |
Zorunlu |
echo |
Mağazaya istek sonucunda geri gönderilecek bilgi alanıdır. Maksimum Uzunluk: 255. |
Opsiyonel |
vendorId |
PosFix tarafından sağlanan altyapı sağlayıcı id bilgisi. Mağaza kendi yazılımını kullanıyor ise bu alan gönderilmemelidir. |
Opsiyonel |
purchaser |
Müşteri Bilgileri. Aşağıdaki tabloda iç parametreleri anlatılmıştır. |
Opsiyonel |
products |
Ürün Bilgileri. Aşağıdaki tabloda iç parametreleri anlatılmıştır. |
Zorunlu |
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
name |
Müşteri isim bilgisi. Minimum Uzunluk: 3 - Maksimum Uzunluk: 50. Zorunlu |
Zorunlu |
surname | Müşteri soyisim bilgisi. Minimum Uzunluk: 3 - Maksimum Uzunluk: 50. | Zorunlu |
Müşteri e-posta bilgisi. E-posta adresi geçerli bir e-posta adresi olmalıdır. Minimum Uzunluk: 3 - Maksimum Uzunluk: 100. | Zorunlu | |
clientIp | Müşteri istemci IP adresi | Zorunlu |
birthDate | Müşteri doğum tarihi bilgisi. “yyyy-MM-dd” formatında olmalıdır. | Opsiyonel |
gsmNumber | Müşteri cep telefonu bilgisi. | Opsiyonel |
tcCertificate | Müşteri T.C. Kimlik Numarası bilgisi. 11 haneli olmalıdır. | Opsiyonel |
invoiceAddress | Fatura adresi bilgileri. Aşağıdaki tabloda iç parametreleri anlatılmıştır. | Opsiyonel |
shippingAddress | Kargo adresi bilgileri.Aşağıdaki tabloda iç parametreleri anlatılmıştır. | Opsiyonel |
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
name | İsim bilgisi. | Opsiyonel |
surname | Soyisim bilgisi. | Opsiyonel |
address | Adres bilgisi. | Opsiyonel |
zipcode | Posta kodu bilgisi. | Opsiyonel |
city | Şehir bilgisi. | Opsiyonel |
country | Ülke bilgisi. ISO 3166-1 alpha-2 standardındaki ülke kodu. Türkiye için “TR”. | Opsiyonel |
tcCertificate | T.C. Kimlik numarası bilgisi. | Opsiyonel |
taxNumber | Vergi numarası bilgisi | Opsiyonel |
taxOffice | Vergi dairesi bilgisi | Opsiyonel |
companyName | Şirket ismi bilgisi | Opsiyonel |
phoneNumber | Telefon bilgisi | Opsiyonel |
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
name | İsim bilgisi. | Opsiyonel |
surname | Soyisim bilgisi. | Opsiyonel |
address | Adres bilgisi. | Opsiyonel |
zipcode | Posta kodu bilgisi. | Opsiyonel |
city | Şehir bilgisi. | Opsiyonel |
country | Ülke bilgisi. ISO 3166-1 alpha-2 standardındaki ülke kodu. Türkiye için “TR”. | Opsiyonel |
phoneNumber | Telefon bilgisi | Opsiyonel |
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
productCode | Ürün kodu bilgisi. | Opsiyonel |
productName | Ürün isim bilgisi. | Opsiyonel |
quantity | Ürün adet bilgisi. | Opsiyonel |
price | Ürün birim fiyat bilgisi. | Opsiyonel |
Parametre Adı | Açıklama |
---|---|
result |
İşlem sonucu |
errorMessage | Hata Mesajı |
errorCode | Hata Kodu |
publicKey | Mağaza açık anahtar bilgisi. |
echo | Mağazanın istek bilgisinde iletmiş olduğu echo verisi. |
transactionDate | Hash hesaplamasında kullanılacak zaman bilgisi. “yyyy-MM-dd HH:mm:ss“ formatındadır. |
mode |
İstek modu. |
orderId | Mağaza sipariş Id |
amount | Sipariş toplam tutar bilgisi. |
hash |
“orderId + result + amount + mode + errorCode + errorMessage + transactionDate + publicKey + privateKey” alanlarını birbirlerine, verilen sıra ile ekleyerek, SHA1 kriptografik hash fonksiyonun base64 methodu ile encode edilmesi sonucunda bu değer oluşur. Not 1: İşlem sonucunda sizlere gönderilen hash bilgisini tarafınıza gelen parametreler ile tekrar hesaplayıp bu alandaki bilgi ile karşılaştırılması gerekmektedir. Eğer aynı hash değeri oluşmuyor ise işlemi reddetmelisiniz. Aksi durumda cevap bilgisi iletiminde üçüncü kişilerin araya girerek sahtekarlık yapabilme olasılığı ortaya çıkacaktır. Not 2: Hash bilgisi hesaplamasında null olan veriler, String “” olarak hesaplanmıştır. Not 3: İstek bilgileri içerisinde mağazanın tanımamasından kaynaklı olarak mağaza bilgileri yoksa cevap bilgisinde hash ve transactionDate alanları gönderilmeyecektir. |
//Request
var request = new ApiPaymentRequest();
request.OrderId = Guid.NewGuid().ToString();
request.Echo = "Echo";
request.Mode = settings.Mode;
request.Amount = "10000"; // 100 tL
request.CardOwnerName = "Fatih Coşkun";
request.CardNumber = "4282209004348015";
request.CardExpireMonth = "05";
request.CardExpireYear = "18";
request.Installment = "1";
request.Cvc = "000";
request.ThreeD = "false";
#region Sipariş veren bilgileri
request.Purchaser = new Purchaser();
request.Purchaser.Name = "Ahmet";
request.Purchaser.SurName = "Veli";
request.Purchaser.BirthDate = "1986-07-11";
request.Purchaser.Email = "[email protected]";
request.Purchaser.GsmPhone = "5881231212";
request.Purchaser.IdentityNumber = "1234567890";
request.Purchaser.ClientIp = "127.0.0.1";
#endregion
#region Fatura bilgileri
request.Purchaser.InvoiceAddress = new PurchaserAddress();
request.Purchaser.InvoiceAddress.Name = "Ahmet";
request.Purchaser.InvoiceAddress.SurName = "Veli";
request.Purchaser.InvoiceAddress.Address = "Mevlüt Pehlivan Mah. PosFix Plaza Şişli";
request.Purchaser.InvoiceAddress.ZipCode = "34782";
request.Purchaser.InvoiceAddress.CityCode = "34";
request.Purchaser.InvoiceAddress.IdentityNumber = "1234567890";
request.Purchaser.InvoiceAddress.CountryCode = "TR";
request.Purchaser.InvoiceAddress.TaxNumber = "123456";
request.Purchaser.InvoiceAddress.TaxOffice = "Kozyatağı";
request.Purchaser.InvoiceAddress.CompanyName = "PosFix";
request.Purchaser.InvoiceAddress.PhoneNumber = "2122222222";
#endregion
#region Kargo Adresi bilgileri
request.Purchaser.ShippingAddress = new PurchaserAddress();
request.Purchaser.ShippingAddress.Name = "Ahmet";
request.Purchaser.ShippingAddress.SurName = "Veli";
request.Purchaser.ShippingAddress.Address = "Mevlüt Pehlivan Mah. PosFix Plaza Şişli";
request.Purchaser.ShippingAddress.ZipCode = "34782";
request.Purchaser.ShippingAddress.CityCode = "34";
request.Purchaser.ShippingAddress.IdentityNumber = "1234567890";
request.Purchaser.ShippingAddress.CountryCode = "TR";
request.Purchaser.ShippingAddress.PhoneNumber = "2122222222";
#endregion
#region Ürün bilgileri
request.Products = new List();
Product p = new Product();
p.Title = "Telefon";
p.Code = "TLF0001";
p.Price = "5000";
p.Quantity = 1;
request.Products.Add(p);
p = new Product();
p.Title = "Bilgisayar";
p.Code = "BLG0001";
p.Price = "5000";
p.Quantity = 1;
request.Products.Add(p);
#endregion
ApiPaymentResponse response = ApiPaymentRequest.Execute(request, settings);
//request
ApiPaymentRequest request = new ApiPaymentRequest();
UUID uuid = UUID.randomUUID();
request.OrderId = uuid.toString();
request.echo = "Echo";
request.mode = settings.Mode;
request.Amount = "10000"; // 100 tL
request.CardOwnerName = "Fatih Coşkun";
request.CardNumber = "4282209027132016";
request.CardExpireMonth = "05";
request.CardExpireYear = "18";
request.Installment = "1";
request.Cvc = "000";
request.ThreeD = "false";
request.UserId="";
request.CardId="";
request.Purchaser = new Purchaser();
request.Purchaser.Name = "Ahmet";
request.Purchaser.SurName = "Veli";
request.Purchaser.BirthDate = "1986-07-11";
request.Purchaser.Email = "[email protected]";
request.Purchaser.GsmPhone = "5881231212";
request.Purchaser.IdentityNumber = "1234567890";
request.Purchaser.ClientIp = "127.0.0.1";
request.Purchaser.InvoiceAddress = new PurchaserAddress();
request.Purchaser.InvoiceAddress.Name = "Ahmet";
request.Purchaser.InvoiceAddress.SurName = "Veli";
request.Purchaser.InvoiceAddress.Address = "Mevlüt Pehlivan Mah. PosFix Plaza Şişli";
request.Purchaser.InvoiceAddress.ZipCode = "34782";
request.Purchaser.InvoiceAddress.CityCode = "34";
request.Purchaser.InvoiceAddress.IdentityNumber = "1234567890";
request.Purchaser.InvoiceAddress.CountryCode = "TR";
request.Purchaser.InvoiceAddress.TaxNumber = "123456";
request.Purchaser.InvoiceAddress.TaxOffice = "Kozyatağı";
request.Purchaser.InvoiceAddress.CompanyName = "PosFix";
request.Purchaser.InvoiceAddress.PhoneNumber = "2122222222";
request.Purchaser.ShippingAddress = new PurchaserAddress();
request.Purchaser.ShippingAddress.Name = "Ahmet";
request.Purchaser.ShippingAddress.SurName = "Veli";
request.Purchaser.ShippingAddress.Address = "Mevlüt Pehlivan Mah. PosFix Plaza Şişli";
request.Purchaser.ShippingAddress.ZipCode = "34782";
request.Purchaser.ShippingAddress.CityCode = "34";
request.Purchaser.ShippingAddress.IdentityNumber = "1234567890";
request.Purchaser.ShippingAddress.CountryCode = "TR";
request.Purchaser.ShippingAddress.PhoneNumber = "2122222222";
request.product = new ArrayList();
Product p = new Product();
p.Title = "Telefon";
p.Code = "TLF0001";
p.Price = "5000";
p.Quantity = "1";
request.product.add(p);
p = new Product();
p.Title = "Bilgisayar";
p.Code = "BLG0001";
p.Price = "5000";
p.Quantity = "1";
request.product.add(p);
ApiPaymentResponse response = ApiPaymentRequest.Execute(request, settings);
//request
$request = new ApiPaymentRequest();
$request->OrderId = Helper::Guid();
$request->Echo = "Echo";
$request->Mode = $settings->Mode;
$request->Amount = "10000"; // 100 tL
$request->CardOwnerName = "Fatih Coşkun";
$request->CardNumber = "4282209004348015";
$request->CardExpireMonth = "05";
$request->CardExpireYear = "18";
$request->Installment = "1";
$request->Cvc = "000";
$request->ThreeD = "false";
#region Sipariş veren bilgileri
$request->Purchaser = new Purchaser();
$request->Purchaser->Name = "Ahmet";
$request->Purchaser->SurName = "Veli";
$request->Purchaser->BirthDate = "1986-07-11";
$request->Purchaser->Email = "[email protected]";
$request->Purchaser->GsmPhone = "5881231212";
$request->Purchaser->IdentityNumber = "1234567890";
$request->Purchaser->ClientIp = Helper::get_client_ip();
#endregion
#region Fatura bilgileri
$request->Purchaser->InvoiceAddress = new PurchaserAddress();
$request->Purchaser->InvoiceAddress->Name = "Ahmet";
$request->Purchaser->InvoiceAddress->SurName = "Veli";
$request->Purchaser->InvoiceAddress->Address = "Mevlüt Pehlivan Mah-> PosFix Plaza Şişli";
$request->Purchaser->InvoiceAddress->ZipCode = "34782";
$request->Purchaser->InvoiceAddress->CityCode = "34";
$request->Purchaser->InvoiceAddress->IdentityNumber = "1234567890";
$request->Purchaser->InvoiceAddress->CountryCode = "TR";
$request->Purchaser->InvoiceAddress->TaxNumber = "123456";
$request->Purchaser->InvoiceAddress->TaxOffice = "Kozyatağı";
$request->Purchaser->InvoiceAddress->CompanyName = "PosFix";
$request->Purchaser->InvoiceAddress->PhoneNumber = "2122222222";
#endregion
#region Kargo Adresi bilgileri
$request->Purchaser->ShippingAddress = new PurchaserAddress();
$request->Purchaser->ShippingAddress->Name = "Ahmet";
$request->Purchaser->ShippingAddress->SurName = "Veli";
$request->Purchaser->ShippingAddress->Address = "Mevlüt Pehlivan Mah-> PosFix Plaza Şişli";
$request->Purchaser->ShippingAddress->ZipCode = "34782";
$request->Purchaser->ShippingAddress->CityCode = "34";
$request->Purchaser->ShippingAddress->IdentityNumber = "1234567890";
$request->Purchaser->ShippingAddress->CountryCode = "TR";
$request->Purchaser->ShippingAddress->PhoneNumber = "2122222222";
#endregion
#region Ürün bilgileri
$request->Products = array();
$p = new Product();
$p->Title = "Telefon";
$p->Code = "TLF0001";
$p->Price = "5000";
$p->Quantity = 1;
$request->Products[0]=$p;
$p = new Product();
$p->Title = "Bilgisayar";
$p->Code = "BLG0001";
$p->Price = "5000";
$p->Quantity = 1;
$request->Products[1]=$p;
#endregion
$response=ApiPaymentRequest::execute($request,$settings);
//Request
const obj = {
echo: "",
amount: "10000",
publicKey: settings.publicKey,
orderId: Guid.raw(),
mode: settings.mode,
threeD: "false",
cardId: "",
userId: "",
cardOwnerName : "Fatih Coşkun",
cardNumber : "4282209004348015",
cardExpireMonth : "05",
cardExpireYear : "18",
cardCvc : "000",
installment : "1",
products: [{
productName: "Telefon",
productCode: "TLF0001",
quantity: "1",
price: "5000"
},
{
productName: "Bilgisayar",
productCode: "BIL0002",
quantity: "1",
price: "5000"
}
],
purchaser: {
birthDate: "1986-07-11",
gsmNumber: "5881231212",
tcCertificate: "1234567890",
name : "Ahmet",
surname : "Veli",
email : "[email protected]",
clientIp : "123.58.7.4",
invoiceAddress: {
name: "Ahmet",
surname: "Veli",
address: "Mevlüt Pehlivan Mah. PosFix Plaza Şişli",
zipcode: "34782",
city: "34",
tcCertificate: "12345678901",
country: "tr",
taxNumber: "123456890",
taxOffice: "Şişli",
companyName: "PosFix",
phoneNumber: "2123886600"
},
shippingAddress: {
name: "Ahmet",
surname: "Veli",
address: "Mevlüt Pehlivan Mah. PosFix Plaza Şişli",
zipcode: "34782",
city: "34",
country: "tr",
phoneNumber: "2123886600"
}
}
}
posfix.ApiPaymentRequest(obj).then(results => {
parseString(results, function (err, result) {
if (err) throw new Error(err);
res.json(result)
});
}).catch(err=>{
console.log(err)
})
//request
req=Apipaymentrequest.new
req.OrderId = SecureRandom.uuid
req.Echo = "Echo"
req.Mode = @@settings.Mode
req.Amount = "10000" # 100 tL
req.CardOwnerName =params[:nameSurname]
req.CardNumber = params[:cardNumber]
req.CardExpireMonth = params[:month]
req.CardExpireYear = params[:year]
req.Installment = params[:installment]
req.Cvc = params[:cvc]
req.ThreeD = "false"
req.UserId=""
req.CardId=""
#region Sipariş veren bilgileri
req.Purchaser = Purchaser.new
req.Purchaser.Name = "Ahmet"
req.Purchaser.SurName = "Veli"
req.Purchaser.BirthDate = "1986-07-11"
req.Purchaser.Email = "[email protected]"
req.Purchaser.GsmPhone = "5881231212"
req.Purchaser.IdentityNumber = "1234567890"
req.Purchaser.ClientIp = "127.0.0.1"
#endregion
#region Fatura bilgileri
req.Purchaser.Invoiceaddress = Purchaseraddress.new
req.Purchaser.Invoiceaddress.Name = "Ahmet"
req.Purchaser.Invoiceaddress.SurName = "Veli"
req.Purchaser.Invoiceaddress.Address = "Mevlüt Pehlivan Mah. PosFix Plaza Şişli"
req.Purchaser.Invoiceaddress.ZipCode = "34782"
req.Purchaser.Invoiceaddress.CityCode = "34"
req.Purchaser.Invoiceaddress.IdentityNumber = "1234567890"
req.Purchaser.Invoiceaddress.CountryCode = "TR"
req.Purchaser.Invoiceaddress.TaxNumber = "123456"
req.Purchaser.Invoiceaddress.TaxOffice = "Kozyatağı"
req.Purchaser.Invoiceaddress.CompanyName = "PosFix"
req.Purchaser.Invoiceaddress.PhoneNumber = "2122222222"
#endregion
#region Kargo Adresi bilgileri
req.Purchaser.Shippingaddress = Purchaseraddress.new
req.Purchaser.Shippingaddress.Name = "Ahmet"
req.Purchaser.Shippingaddress.SurName = "Veli"
req.Purchaser.Shippingaddress.Address = "Mevlüt Pehlivan Mah. PosFix Plaza Şişli"
req.Purchaser.Shippingaddress.ZipCode = "34782"
req.Purchaser.Shippingaddress.CityCode = "34"
req.Purchaser.Shippingaddress.IdentityNumber = "1234567890"
req.Purchaser.Shippingaddress.CountryCode = "TR"
req.Purchaser.Shippingaddress.PhoneNumber = "2122222222"
#endregion
#region Ürün bilgileri
req.Products = Array.new()
p =Product.new
p.Title = "Telefon"
p.Code = "TLF0001"
p.Price = "5000"
p.Quantity = 1
req.Products << p
p =Product.new
p.Title = "Bilgisayar"
p.Code = "BLG0001"
p.Price = "5000"
p.Quantity = 1
req.Products << p
#endregion
@@returnData= req.execute(req,@@settings)
//request
api = ApiPaymentRequest()
api.Echo = "Echo"
api.Mode = config.Mode
api.ThreeD = "false"
api.OrderId = str(randint(1, 10000))
api.Amount = "10000"
api.CardOwnerName = request.POST.get('nameSurname')
api.CardNumber = request.POST.get('cardNumber')
api.CardExpireMonth = request.POST.get('month')
api.CardExpireYear = request.POST.get('year')
api.Installment = request.POST.get('installment')
api.Cvc = request.POST.get('cvc')
api.VendorId = ""
api.UserId = ""
api.CardId = ""
#Sipariş veren bilgileri
api.Purchaser = api.PurchaserClass()
api.Purchaser.name = "Ahmet"
api.Purchaser.surname = "Veli"
api.Purchaser.birthDate = "1986-07-11"
api.Purchaser.email = "[email protected]"
api.Purchaser.gsmPhone = "5881231212"
api.Purchaser.tcCertificate = "58812312547"
api.Purchaser.clientIp = "127.0.0.1"
# Fatura Bilgileri
api.Purchaser.invoiceAddress = api.PurchaserAddress()
api.Purchaser.invoiceAddress.name = "Ahmet"
api.Purchaser.invoiceAddress.surname = "Veli"
api.Purchaser.invoiceAddress.address = "Mevlüt Pehlivan Mah. PosFix Plaza Şişli"
api.Purchaser.invoiceAddress.zipCode = "34782"
api.Purchaser.invoiceAddress.cityCode = "34"
api.Purchaser.invoiceAddress.tcCertificate = "1234567890"
api.Purchaser.invoiceAddress.country = "TR"
api.Purchaser.invoiceAddress.taxNumber = "123456"
api.Purchaser.invoiceAddress.taxOffice = "Kozyatagi"
api.Purchaser.invoiceAddress.companyName = "PosFix"
api.Purchaser.invoiceAddress.phoneNumber = "2122222222"
# Kargo Bilgileri
api.Purchaser.shippingAddress = api.PurchaserAddress()
api.Purchaser.shippingAddress.name = "Ahmet"
api.Purchaser.shippingAddress.surname = "Veli"
api.Purchaser.shippingAddress.address = "Mevlüt Pehlivan Mah. PosFix Plaza Şişli"
api.Purchaser.shippingAddress.zipCode = "34782"
api.Purchaser.shippingAddress.cityCode = "34"
api.Purchaser.shippingAddress.tcCertificate = "1234567890"
api.Purchaser.shippingAddress.country = "TR"
api.Purchaser.shippingAddress.phoneNumber = "2122222222"
# Ürün Bilgileri
api.Products = []
product1 = api.Product()
product1.title = "Telefon"
product1.code = "TLF0001"
product1.price = "5000"
product1.quantity = "1"
api.Products.append(product1)
product2 = api.Product()
product2.title = "Bilgisayar"
product2.code = "BLG0001"
product2.price = "5000"
product2.quantity = "1"
api.Products.append(product2)
message = api.execute(api, config)
//Request
Ahmet Veli
4282209004348015
02
17
123
1
false
b3091d88-6320-4446-be6c-7a1f8e6e73c7
Echo Bilgisi
2500
T
Product Code 1
Product Name 1
1
1500
Product Code 2
Product Name 2
1
1000
Ahmet
Veli
ahmet@veli.com
123.58.7.4
1976-07-11
5881231212
1234567890
Ahmet
Veli
Mevlüt Pehlivan Mah. PosFix Plaza Şişli
34782
34
12345678901
tr
123456890
Şişli
PosFix
2123886600
Ahmet
Veli
Mevlüt Pehlivan Mah. PosFix Plaza Şişli
34782
34
tr
2123886600
//Response
2500
Echo Bilgisi
yO5ACnF9FpsiV2/WBRRsDEBDRt8=
T
b3091d88-6320-4446-be6c-7a1f8e6e73c7
ABVQ03C77WPTODQN
1
2014-01-03 21:08:51
Mağaza, müşteri üyelik bilgilerini ve kart bilgilerini aldıktan sonra, ödeme verilerini JSON formatında hazırlayıp http form post yöntemi ile https://api.posfix.com.tr/rest/payment/threed adresine mağaza tarafından üretilen her bir işlem için benzersiz olan tekil sipariş kodu ile post eder.
Json verisi “ parameters ” ismi ile post edilmelidir. PosFix işlem sonucunu kullanıcının istek bilgisinde gönderdiği başarılı veya hatalı sonuç adresine http post yöntemi ile geri döner.
Parametre Adı | Açıklama | Zorunluluk |
---|---|---|
mode |
İstek modu. “P” veya “T” gönderilmelidir. |
Evet |
orderId |
Mağazanın ilgili sipariş ile ilişkilendirdiği her bir istek için benzersiz olan tekil sipariş kodu. Maksimum Uzunluk: 100 karakter. |
Evet |
cardOwnerName |
Kart üzerindeki ad. Minimum Uzunluk: 4 - Maksimum Uzunluk: 100 karakter. |
* |
cardNumber |
Kart numarası. Minimum Uzunluk: 12 - Maksimum Uzunluk: 19 karakter. |
* |
cardExpireMonth |
Kart son kullanma tarihi ay parametresi Uzunluk: 2 karakter. Örnek; 05,11, vb. |
* |
cardExpireYear |
Kart son kullanma tarihi yıl parametresi. Uzunluk: 2 karakter. Örnek; 14,19, vb. |
* |
cardCvc |
Kartın arkasındaki güvenlik kodu: Uzunluk: MasterCard ve Visa kartları için 3 karakter, Amex kartlar için 3 veya 4 karakter. |
* |
userId |
Mağaza kullanıcısını referans eden bilgi. |
* |
cardId |
Mağaza kullanıcısının kartını referans eden kart kaydetme işlemi sonucunda oluşan id bilgisi. |
* |
installment |
Taksit Sayısı. |
Hayır |
amount |
Karttan çekilecek olan toplam sipariş tutarı. |
Evet |
echo |
Mağazaya istek sonucunda geri gönderilecek bilgi alanıdır. |
Hayır |
successUrl |
İşlemin başarılı olarak sonuçlanması durumunda alıcının yönlendirileceği adres. |
Evet |
failureUrl |
İşlemin hatalı olarak sonuçlanması durumunda alıcının yönlendirileceği adres. Maksimum Uzunluk: 500. Önemli Not 1: Url bilgisi http:// veya https:// ile başlamalıdır. Önemli Not 2: Failure url bilgisi hatalı ise dönülecek adres belirlenemediğinden mağazaya dönüş gerçekleşemeyecek ve boş sayfa açılacaktır. Bu durumda göndermiş olduğunuz url bilgisini kontrol etmenizi rica ederiz. |
Evet |
transactionDate |
İstek zamanı bilgisi. “yyyy-MM-dd HH:mm:ss“ formatındadır. İşlem zaman aşımına uğramış ise istek reddedilir. Örnek: “2014-08-12 23:59:59” |
Evet |
version | Entegrasyon versiyon bilgisidir. “1.0” olarak gönderilmelidir. | Evet |
deviceUUID | Hayır | |
token |
“publicKey:hash” bilgisidir. |
Evet |
language |
‘’tr-TR” veya “en-US” olarak gönderilmelidir. |
Evet |
vendorId |
PosFix tarafından sağlanan altyapı sağlayıcı id bilgisi. |
Hayır |
purchaser |
Müşteri Bilgileri. Aşağıdaki tabloda iç parametreleri anlatılmıştır. |
Evet |
products |
Ürün Bilgileri. Aşağıdaki tabloda iç parametreleri anlatılmıştır. |
Evet |
Normal ödeme işlemlerinde “ * ” ile belirtilen alanlardan sadece cardOwnerName, cardNumber, cardExpireMonth, cardExpireYear, cardCvc gönderilecektir, userId ve cardId string empty(“”) olarak gönderilecektir.
Kayıtlı kart ödeme servislerinde “ * ” ile belirtilen alanlardan sadece userId ve cardId gönderilecektir, cardOwnerName, cardNumber, cardExpireMonth, cardExpireYear, cardCvc string empty(“”) olarak gönderilecektir.
Parametre Adı | Açıklama | Zorunluluk |
---|---|---|
name |
Müşteri isim bilgisi. |
Evet |
surname |
Müşteri soyisim bilgisi. |
Evet |
Müşteri e-posta bilgisi. |
Evet | |
clientIp |
Müşteri istemci IP adresi |
Evet |
birthDate |
Müşteri doğum tarihi bilgisi. “yyyy-MM-dd” formatında olmalıdır. |
Hayır |
gsmNumber |
Müşteri cep telefonu bilgisi. |
Hayır |
tcCertificate |
Müşteri T.C. Kimlik Numarası bilgisi. 11 haneli olmalıdır. |
Hayır |
invoiceAddress |
Fatura adresi bilgileri. Aşağıdaki tabloda iç parametreleri anlatılmıştır |
Hayır |
shippingAddress |
Kargo adresi bilgileri. |
Hayır |
Parametre Adı | Açıklama | Zorunluluk |
---|---|---|
productCode |
Ürün kodu bilgisi. Maksimum Uzunluk: 20. |
Evet |
productName |
Ürün isim bilgisi. Maksimum Uzunluk: 100. |
Evet |
quantity |
Ürün adet bilgisi. |
Evet |
price |
Ürün birim fiyat bilgisi. |
Evet |
En az bir tane ürün(product) bilgisi gönderimi zorunludur.
Parametre Adı | Açıklama | Zorunluluk |
---|---|---|
name |
İsim bilgisi. |
Hayır |
surname |
Soyisim bilgisi. |
Hayır |
address |
Adres bilgisi. |
Hayır |
zipcode |
Posta kodu bilgisi. |
Hayır |
city |
Şehir bilgisi. |
Hayır |
country |
Ülke bilgisi. |
Hayır |
tcCertificate |
T.C. Kimlik numarası bilgisi |
Hayır |
taxNumber |
Vergi numarası bilgisi |
Hayır |
taxOffice |
Vergi dairesi bilgisi Maksimum Uzunluk: 100 |
Hayır |
companyName |
Şirket ismi bilgisi Maksimum Uzunluk: 100. |
Hayır |
phoneNumber |
Telefon bilgisi |
Hayır |
Parametre Adı | Açıklama | Zorunluluk |
---|---|---|
name |
İsim bilgisi. |
Hayır |
surname |
Soyisim bilgisi. |
Hayır |
address |
Adres bilgisi. |
Hayır |
zipcode |
Posta kodu bilgisi. |
Hayır |
city |
Şehir bilgisi. |
Hayır |
country |
Ülke bilgisi. |
Hayır |
phoneNumber |
Telefon bilgisi |
Hayır |
Parametre Adı | Açıklama |
---|---|
result |
İşlem sonucu |
errorMessage | Hata Mesajı |
errorCode | Hata Kodu |
publicKey | Mağaza açık anahtar bilgisi. |
echo | Mağazanın istek bilgisinde iletmiş olduğu echo verisi. |
transactionDate | Hash hesaplamasında kullanılacak zaman bilgisi. “yyyy-MM-dd HH:mm:ss“ formatındadır. |
mode |
İstek modu. |
orderId |
Mağaza sipariş Id |
amount |
Sipariş toplam tutar bilgisi. |
private static final String PUBLIC_KEY_20 = "publick_key";
private static final String PRIVATE_KEY_20 = "private_key";
private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
private static final String SIMPLE_DATE_FORMAT = "yyyy-MM-dd";
private static final String REQUEST_URL = "https://api.posfix.com.tr/rest/payment/threed";
private ThreeDPaymentDTO paymentDTO;
public void threeDPaymentTest(HttpServletResponse response) throws Exception {
paymentDTO = createThreeDPaymentModel(); String htmlForm = createForm();
response.getWriter().println(htmlForm);
}
private ThreeDPaymentDTO createThreeDPaymentModel() throws Exception {
ThreeDPaymentDTO dto = new ThreeDPaymentDTO();
dto.setOrderId(UUID.randomUUID().toString());
dto.setAmount("100");
dto.setCardOwnerName("Jack connor");
dto.setCardNumber("4282209004348015");
dto.setCardExpireMonth("07");
dto.setCardExpireYear("20");
dto.setCardCvc("123");
dto.setInstallment("1");
dto.setLanguage("tr-TR");
dto.setMode("P");
dto.setPurchaser(createPurchaser());
dto.setSuccessUrl("http://localhost:8082/rest/payment/threed/test/result");
dto.setFailureUrl("http://localhost:8082/rest/payment/threed/test/result");
dto.setEcho("Payment Test"); dto.setVersion("1.0");
dto.setTransactionDate(getTransactionDate());
dto.setUserId(""); dto.setCardId("");
dto.setVendorId("");
dto.setToken(createToken(dto));
dto.setProducts(createProduct());
return dto;
}
private PurchaserDTO createPurchaser() {
PurchaserDTO purchaser = new PurchaserDTO();
purchaser.setName("Jack");
purchaser.setSurname("Connor");
purchaser.setEmail("[email protected]");
purchaser.setBirthDate(getBirthDate());
purchaser.setGsmNumber("05320343434");
purchaser.setClientIp("192.168.0.54");
purchaser.setTcCertificate("99999999999");
purchaser.setInvoiceAddress(createInvoiceAddress());
purchaser.setShippingAddress(createShippingAddress());
return purchaser;
}
private InvoiceAddressDTO createInvoiceAddress() {
InvoiceAddressDTO dto = new InvoiceAddressDTO();
dto.setName("Jack"); dto.setSurname("Connor");
dto.setAddress("Kaliforniya");
dto.setZipcode("00001");
dto.setCity("Los Angeles");
dto.setCountry("ADB");
dto.setTcCertificate("99999999999");
dto.setTaxNumber("9999999999");
dto.setTaxOffice("Los Angeles");
dto.setCompanyName("PosFix");
dto.setPhoneNumber("05340343434");
return dto;
}
private ShippingAddressDTO createShippingAddress() {w
ShippingAddressDTO dto = new ShippingAddressDTO();
dto.setName("Jack");
dto.setSurname("Connor");
dto.setAddress("Kaliforniya");
dto.setZipcode("00001");
dto.setCity("Los Angeles");
dto.setCountry("ABD");
dto.setPhoneNumber("05340343434");
return dto;
}
private List createProduct() {
List products = new ArrayList<>();
ProductDTO p = new ProductDTO();
p.setPrice("100");
p.setProductCode("1");
p.setProductName("test");
p.setQuantity("1");
products.add(p);
return products;
}
private String getTransactionDate() {
return new SimpleDateFormat(DATE_FORMAT).format(new Date());
}
private String createToken(ThreeDPaymentDTO threeDPayment) throws Exception {
String hash = PRIVATE_KEY_20 +
threeDPayment.getOrderId() +
threeDPayment.getAmount() +
threeDPayment.getMode() +
threeDPayment.getCardOwnerName() +
threeDPayment.getCardNumber() +
threeDPayment.getCardExpireMonth() +
threeDPayment.getCardExpireYear() +
threeDPayment.getCardCvc() +
threeDPayment.getUserId() +
threeDPayment.getCardId() +
threeDPayment.getPurchaser().getName() +
threeDPayment.getPurchaser().getSurname() +
threeDPayment.getPurchaser().getEmail() +
threeDPayment.getTransactionDate();
hash = getSHA1Text(hash);
return PUBLIC_KEY_20 + ":" + hash;
}
private String getSHA1Text(String hash) throws Exception {
MessageDigest sha1 = MessageDigest.getInstance("SHA-1");
return (new BASE64Encoder()).encode(sha1.digest(hash.getBytes("UTF-8")));
}
private String createForm() {
Gson gson = new Gson();
String jsonString = gson.toJson(paymentDTO);
String form = "
return form;
}
{
"mode":"T",
"orderId":"10129653-7c46-44a1-911b-9e8bc5d937a4",
"cardOwnerName":"Ferhat Bedir",
"cardNumber":"4282209004348015",
"cardExpireMonth":"07",
"cardExpireYear":"20",
"cardCvc":"664",
"userId":"",
"cardId":"",
"installment":"1",
"amount":"100",
"echo":"Payment Test",
"successUrl":"http://localhost:8082/rest/payment/threed/test/result",
"failureUrl":"http://localhost:8082/rest/payment/threed/test/result",
"transactionDate":"2020-04-29 15:48:09",
"version":"1.0",
"deviceUUID":"android-20013fea6bcc820c",
"token":"EILSMVQZJY2XY7R:w4m7j5h1XWEEwdatbtZDMFJVYBw\u003d",
"language":"tr-TR",
"vendorId":"10100",
"purchaser":{
"name":"Jack",
"surname":"Connor",
"email":"[email protected]",
"clientIp":"192.168.0.54",
"birthDate":"2020-04-29",
"gsmNumber":"05320343434",
"tcCertificate":"99999999999",
"invoiceAddress":{
"name":"Jack",
"surname":"Connor",
"address":"Kaliforniya",
"zipcode":"00001",
"city":"Los Angeles",
"country":"ADB",
"tcCertificate":"99999999999",
"taxNumber":"9999999999",
"taxOffice":"Los Angeles",
"companyName":"PosFix",
"phoneNumber":"05340343434" },
"shippingAddress":{
"name":"Jack",
"surname":"Connor",
"address":"Kaliforniya",
"zipcode":"00001",
"city":"Los Angeles",
"country":"ABD",
"phoneNumber":"05340343434"
}
},
"products":[
{
"productCode":"1",
"productName":"test",
"quantity":"1",
"price":"100"
}
]
}
Mağaza, daha önceden yapılan ödeme tahsilat denemelerine istinaden sipariş numarası ile verileri XML formatında hazırlayarak https://api.posfix.com.tr/rest/payment/inquiry web servis adresine gerekli güvenlik bilgilerini http header bilgisine ekleyerek post eder. PosFix işlem sonucunu yine XML formatında mağazaya döner. Bu servise sorgulanmak istenen ödemenin mağaza sipariş numarası ve mode değeri iletilerek, ödemenin durumu ve ödemenin tutarı öğrenilebilir. Eğer ödeme iade edilmişse veya ödemede kısmı iadeler olmuşsa, iadelerden sonra kalan miktar belirtilir. Mağaza sipariş numarası ve mode değerleri ödeme yapılırken yollanmış değerler olmalıdır. Aksi halde ödeme bulunamadı hatası alınacaktır.
PosFix, güvenlik kontrolleri için, mağazadan bazı bilgileri HTTP Header alanında istemektedir. Aşağıda bu bilgilerin tanımları bulunmaktadır:
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
transactionDate |
İstek zamanı. “yyyy-MM-dd HH:mm:ss“ formatındadır. İşlem zaman aşımına uğramış ise istek reddedilir. Örnek: “2014-08-12 23:59:59” İlgili kütüphane içindeki GetTransactionDate() fonksiyonundan elde edilebilir. |
Zorunlu |
version |
Entegrasyon versiyon bilgisidir. “1.0” olarak gönderilmelidir. |
Zorunlu |
token |
“publicKey:hash” bilgisidir. Hash bilgisi; alanlarını birbirlerine, verilen sıra ile ekleyerek, SHA1 kriptografik hash fonksiyonun base64 methodu ile encode edilmesi sonucunda oluşur. Hash oluşturma fonksiyonu örnekleri burada anlatılmıştır. |
Zorunlu |
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
mode |
İstek modu. “P” veya “T” gönderilmelidir. |
Zorunlu |
orderId |
Mağazanın ilgili sipariş ile ilişkilendirdiği her bir istek için benzersiz olan tekil sipariş kodu. Maksimum Uzunluk: 100 karakter. |
Zorunlu |
echo |
Mağazaya istek sonucunda geri gönderilecek bilgi alanıdır. Maksimum Uzunluk: 255. |
Opsiyonel |
Parametre Adı | Açıklama |
---|---|
result |
Ödeme durumunu belirten sonuç bilgisi. |
responseMessage |
Ödeme durumunu belirten mesajdır APPROVED – Ödeme başarılı REFUNDED – Ödeme iade edilmiş DECLINED – Ödeme reddedilmiş NOT_FOUND – Ödeme bulunamadı APPROVED_BUT_WAITING_MANUAL_PARTIAL_REFUND - Parçalı iade talebinde bulunulmuş ancak PosFix tarafından manuel iade yapılması gerekiyor. APPROVED_BUT_WAITING_MANUAL_REFUND – İade talebinde bulunulmuş ancak PosFix tarafından manuel iade yapılması gerekiyor. APPROVED_BUT_WAITING_MONEY_TRANSFER_FOR_REFUND – İade talebinde bulunulmuş ancak Mağaza’dan geri para transferi yapılması gerekiyor. APPROVED_BUT_WAITING_MONEY_TRANSFER_FOR_PARTIAL_REFUND – Parçalı iade talebinde bulunulmuş ancak Mağaza’dan geri para transferi yapılması gerekiyor. |
errorMessage | Hata Mesajı |
errorCode | Hata Kodu |
publicKey | Mağaza açık anahtar bilgisi. |
echo | Mağazanın istek bilgisinde iletmiş olduğu echo verisi. |
transactionDate | Hash hesaplamasında kullanılacak zaman bilgisi. “yyyy-MM-dd HH:mm:ss“ formatındadır. |
mode |
İstek modu. |
orderId | Mağaza sipariş Id |
amount |
Ödemenin kalan miktarı. Kuruş değerinde yollanacaktır. Örneğin; 1 TL için 100, 12 TL için 1200, 1.05 TL için 105, 1.2 TL için 120 olarak gönderilecektir. Eğer ödemenin tamamı iade edilmişse “000” değeri dönecektir. |
hash |
“orderId + result + amount + mode + errorCode + errorMessage + transactionDate + publicKey + privateKey” alanlarını birbirlerine, verilen sıra ile ekleyerek, SHA1 kriptografik hash fonksiyonun base64 methodu ile encode edilmesi sonucunda bu değer oluşur. Not 1: İşlem sonucunda sizlere gönderilen hash bilgisini tarafınıza gelen parametreler ile tekrar hesaplayıp bu alandaki bilgi ile karşılaştırılması gerekmektedir. Eğer aynı hash değeri oluşmuyor ise işlemi reddetmelisiniz. Aksi durumda cevap bilgisi iletiminde üçüncü kişilerin araya girerek sahtekarlık yapabilme olasılığı ortaya çıkacaktır. Not 2: Hash bilgisi hesaplamasında null olan veriler, String “” olarak hesaplanmıştır. Not 3: İstek bilgileri içerisinde mağazanın tanımamasından kaynaklı olarak mağaza bilgileri yoksa cevap bilgisinde hash ve transactionDate alanları gönderilmeyecektir. |
//Request
PaymentInquiryRequest request = new PaymentInquiryRequest();
request.orderId = orderId;
request.Echo= "Echo";
request.Mode = settings.Mode;
PaymentInquiryResponse response = PaymentInquiryRequest.Execute(request, settings);
//Request
PaymentInquiryRequest request = new PaymentInquiryRequest();
request.orderId = orderId;
request.echo="Echo";
request.mode = settings.Mode;
PaymentInquiryResponse response = PaymentInquiryRequest.Execute(request, settings);
//request
$request = new PaymentInquiryRequest();
$request->orderId = orderId;
$request->Echo= "Echo";
$request->Mode = settings.Mode;
$response=PaymentInquiryRequest::execute($request,$settings);
//Request
posfix.PaymentInquiryRequest(orderId).then(requestResult => {
parseString(requestResult, (err, result) => {
if (err) throw new Error(err);
res.json(result)
})
}).catch(err => {
console.log(err)
})
//request
req=Paymentinquiryrequest.new
req.orderId = params[:orderId]
@@returnData= req.execute(req,@@settings)
//Request
req = PaymentInquiryRequest()
req.orderId = request.POST.get('orderId')
message = req.execute(req, config)
//Request
b3091d88-6320-4446-be6c-7a1f8e6e73c7
Echo Bilgisi
T
//Response
REFUNDED
2500
Echo Bilgisi
yO5ACnF9FpsiV2/WBRRsDEBDRt8=
T
b3091d88-6320-4446-be6c-7a1f8e6e73c7
ABVQ03C77WPTODQN
2
2014-01-03 21:08:51
Mağaza, daha önceden yapılan ödeme tahsilat denemelerine istinaden, sorgulamak istediği ödeme tarih aralığı ile verileri JSON formatında hazırlayarak https://api.posfix.com.tr/rest/payment/search web servis adresine gerekli güvenlik bilgilerini http header bilgisine ekleyerek post eder.
PosFix işlem sonucunu yine JSON formatında mağazaya döner. Bu servise sorgulanmak istenen ödemeler için başlangıç ve bitiş tarih aralığı ,mode değeri ve echo bilgisi iletilerek, girilen tarih aralığında bulunan ödemelerin durumu ve ödemenin tutarı öğrenilebilir. Eğer ödeme iade edilmişse veya ödemede kısmı iadeler olmuşsa, iadelerden sonra kalan miktar belirtilir.
Para Tarih Aralığına Göre Ödeme Sorgulama Servisi Rest bir servis olup JSON medya tipinde istekleri kabul etmektedir. Girilen tarih aralığı 30 gün ile sınırlıdır.
PosFix, güvenlik kontrolleri için, mağazadan bazı bilgileri HTTP Header alanında istemektedir. Aşağıda bu bilgilerin tanımları bulunmaktadır.
HttpHeader Güvenlik Parametreleri
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
transactionDate |
İstek zamanı. “yyyy-MM-dd HH:mm:ss“ formatındadır. |
Zorunlu |
version |
Entegrasyon versiyon bilgisidir. “1.0” olarak gönderilmelidir. |
Zorunlu |
token |
“publicKey:hash” bilgisidir. |
Zorunlu |
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
mode |
İstek modu. “P” veya “T” gönderilmelidir. |
Zorunlu |
startDate |
Sorgulanmak istenilen siparişler için tarih aralığının başlangıç değeri Örnek “2020-06-01 23:59:59” |
Zorunlu |
endDate |
Sorgulanmak istenilen siparişler için tarih aralığının bitiş değeri Örnek “2020-06-30 23:59:59” |
Zorunlu |
echo |
Mağazaya istek sonucunda geri gönderilecek bilgi alanıdır. Maksimum Uzunluk: 255. |
Opsiyonel |
Parametre Adı | Açıklama |
---|---|
result |
İşlem sonucu |
errorMessage | Hata Mesajı |
errorCode | Hata Kodu |
payments | Tarih aralığında bulunan tüm ödemelerin bilgileri |
totalPayments | Tarih aralığında bulunan toplam ödeme sayısı |
responseMessage | İşlem sonucunu bildiren mesajdır. |
{
"payments": [
{
"result": "3",
"responseMessage": "DECLINED",
"orderId": "ac28cc56-1e23-4676-9c51-77a886673705",
"amount": "0",
"finalAmount": "100",
"transactionDate": "2020-06-08 10:31:38.0"
},
{
"result": "3",
"responseMessage": "DECLINED",
"orderId": "3bf23cc5-856b-4ff3-a88d-56647afe31a3",
"amount": "0",
"finalAmount": "100",
"transactionDate": "2020-06-08 10:26:29.0"
},
{
"result": "1",
"responseMessage": "APPROVED",
"orderId": "f0eeae53-bd54-4fe4-9c12-c3f6528aa012",
"amount": "100",
"finalAmount": "100",
"transactionDate": "2020-06-08 10:07:52.0"
},
{
"result": "1",
"responseMessage": "APPROVED",
"orderId": "6ec36eb0-5115-446f-a3de-25b0748b49b6",
"amount": "100",
"finalAmount": "100",
"transactionDate": "2020-06-08 10:00:59.0"
},
{
"result": "1",
"responseMessage": "APPROVED",
"orderId": "7dec7580-0125-41ea-99ab-c8760da856bb",
"amount": "100",
"finalAmount": "000",
"transactionDate": "2020-06-04 16:48:17.0"
},
{
"result": "1",
"responseMessage": "APPROVED",
"orderId": "c7fcfec8-15ff-4cd8-af26-3c9e772d149f",
"amount": "100",
"finalAmount": "100",
"transactionDate": "2020-06-03 16:40:42.0"
}
],
"totalPayments": 6,
"result": "1",
"responseMessage": "SUCCESS"
}
Kurumunuza ait kayıtlı mağazanın link ile ödeme talebini iletmesi doğrultusunda, istek içinde belirtilen mağaza müşterisine ait e-posta adresine ödeme linkinin iletilmesini sağlayan servistir.
Link gönderimi gerçekleştirilmek istendiğinde gerekli istek bilgilerini JSON formatında hazırlayarak, https://api.posfix.com.tr/corporate/merchant/linkpayment/create adresine gerekli güvenlik bilgilerini http header bilgisine ekleyerek post eder. PosFix işlem sonucunu yine JSON formatında mağazaya döner.
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
clientIp |
İstekte bulunan kullanıcının IP adresi |
Zorunlu |
name |
Müşteri isim bilgisi 2 ila 50 arasında Türkçe karakterlerden oluşmalıdır. Boşluk karakteri kabul edilir. |
Zorunlu |
surname |
Müşteri soyisim bilgisi 2 ila 50 arasında Türkçe karakterlerden oluşmalıdır. Boşluk karakteri kabul edilir. |
Zorunlu |
tcCertificate |
Müşteri T.C. kimlik numarası bilgisi Müşteriye ait 11 rakamdan oluşan T.C. Kimlik No |
Opsiyonel |
taxNumber |
Müşteri vergi numarası bilgisi Müşteriye ait 10 rakamdan oluşan T.C. Vergi Numarası |
Opsiyonel |
Müşterinin ödeme linkini alacağı e-posta adresi |
Zorunlu | |
gsm |
Müşteriye ait cep telefonu numarası bilgisi. 10 hane olarak gönderilmelidir. Örn; 5881231212 |
Zorunlu |
amount |
Müşteriden tahsil edilecek olan tutar bilgisi Tutar kuruş ayracı olmadan gönderilmelidir. Örneğin; 1 TL 100, 12 1200, 130 13000, 1.05 105, 1.2 120 olarak gönderilmelidir. |
Zorunlu |
threeD |
3D Secure ile gerçekleştirilen ödeme işlemlerinde “true” olarak gönderilmelidir. |
Zorunlu |
expireDate |
Link geçerlilik süresidir. “yyyy-MM-dd HH:mm:ss” formatında olmalıdır. |
Zorunlu |
installmentList |
Ödemenin geçebileceği taksitlerin listesidir. Örnek: 2,3,4,5,9 şeklinde olmalıdır. Bu listenin boş veya hiç gönderilmediği durumlarda işlem peşin olarak kabul edilir. |
Opsiyonel |
sendEmail |
Kullanıcıya email gönderilmesi isteniyor ise bu alan “true” istenmiyor ise “false” gönderilmelidir. |
|
mode |
Oluşturulmak istenen linkin mod bilgisi. “P” veya “T” gönderilmelidir. |
Zorunlu |
commissionType |
PosFix komisyonunun Alıcıya veya Satıcıya yansıtılması. |
Opsiyonel |
tcCertificate girilmiş ise taxNumber, taxNumber girilmiş ise tcCertificate bilgisi girilmesi zorunlu değildir. İkiliden sadece birinin verisi yeterlidir. İki verinin aynı istek içinde gönderilmesinde de bir sorun bulunmamaktadır.
PosFix, güvenlik kontrolleri için, mağazadan bazı bilgileri request header bilgisinde istemektedir. Aşağıda bu bilgilerin tanımları bulunmaktadır.
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
transactionDate |
İstek zamanı. “yyyy-MM-dd HH:mm:ss“ formatındadır. İşlem zaman aşımına uğramış ise istek reddedilir. Örnek: “2014-08-12 23:59:59” |
Zorunlu |
version |
Entegrasyon versiyon bilgisidir. “1.0” olarak gönderilmelidir. |
Zorunlu |
token |
“publicKey:hash” bilgisidir. Hash bilgisi; ' privateKey + name + surname + email + amount + clientIp + transactionDate ' alanlarını birbirlerine, verilen sıra ile ekleyerek, SHA1 kriptografik hash fonksiyonunun base64 methodu ile encode edilmesi sonucunda oluşur. Hash oluşturma fonksiyonu örnekleri 2 no’lu başlıkta anlatılmıştır. Example : token =public key + ‘:’ + base64[ sha1[("privateKey + name + surname + email + amount + clientIp + transactionDate ")]] Veri Örneği: token = “ASKJH98675ASDASDPO:jhsa/gd+89dfg0df6SA/dfg8967==” |
Zorunlu |
Parametre Adı | Açıklama |
---|---|
result |
İşlem sonucu |
errorCode | Hata Kodu |
errorMessage | Teknik hata mesajı. |
responseMessage | Kullanıcıya gösterilecek hata veya başarılı sonuç mesajı. Başarılı entegrasyon sonrası hata mesajlarının kullanıcıya direkt gösterilmesini öneririz. |
link | İşlem başarılı sonuçlandığında oluşan url bilgisi. |
linkPaymentId | Ödeme Linkinin şifreli ID bilgisi. Bu bilgi link silme servisinde kullanılabilmektedir. |
amount |
İstek içinde alından tutar bilgisinin biçimlendirilmiş hali. |
Hata Kodu | Açıklama |
---|---|
800 |
İstek boş. |
801 | Token bilgisi boş. |
802 | Token bilgisi hatalı. |
803 | Açık anahtar boş. |
804 | Hash bilgisi boş. |
805 | Entegrasyon versiyon bilgisi boş. |
806 |
Versiyon desteklenmiyor. |
807 |
İstek zaman bilgisi boş. |
808 |
İstek zamanı header bilgisi hatalı. |
809 |
İstek zamanı ile server zamanı uyuşmuyor. Lütfen tekrar deneyiniz. |
810 |
Mağaza açık anahtarı yanlış. |
811 |
Mağaza yayında değil. |
816 |
Lütfen tutar belirtiniz |
817 |
Girmiş olduğunuz tutar bilgisi hatalıdır. Lütfen tekrar deneyiniz. |
818 |
ThreeD alanı boş olamaz. |
819 |
ThreeD alanı hatalı. |
882 |
Göndermiş olduğunuz token doğru değil. |
845 |
Lütfen adınızı giriniz. |
846 |
Ad alanı 2 karakterden küçük, 50 karakterden büyük olamaz. |
847 |
Lütfen soyadınızı giriniz. |
848 |
Soyad alanı 2 karakterden küçük, 50 karakterden büyük olamaz. |
872 |
Lütfen T.C kimlik numarasını 11 hane olacak şekilde giriniz. |
993 |
Lütfen e-posta alanı giriniz. |
994 |
Lütfen geçerli bir e-posta giriniz. |
995 |
Lütfen geçerli bir komisyon tipi giriniz. |
846 |
Ad alanı 2 karakterden küçük, 50 karakterden büyük olamaz. |
3017 |
Lütfen vergi numarası giriniz. |
3018 |
Lütfen geçerli bir vergi numarası giriniz. |
3055 |
Bitiş tarihi zorunlu alandır |
3056 |
Geçerli bir bitiş tarihi giriniz |
3094 |
Lütfen cep telefon numarası giriniz. |
3095 |
Lütfen cep telefon numarasını başında sıfır olmadan 10 hane olarak giriniz. |
3096 |
Girilen cep telefonu kara listede olduğu için isteğiniz reddedilmiştir. Daha fazla bilgi için [email protected] üzerinden iletişime geçiniz. |
3097 |
Lütfen e-posta adresini giriniz. |
3098 |
Lütfen geçerli bir e-posta adresi giriniz. |
4002 |
Lütfen açıklama metnini boşluklar dahil 480 karakter ve altında olacak şekilde yazınız. |
4011 |
TC Kimlik numarası ya da vergi numarası zorunlu alandır. |
4030 |
Ödeme miktarı 100.000 TL'yi geçemez. |
1000 |
İşleminiz gerçekleştirilirken beklenmedik bir hata oluştu. Lütfen daha sonra tekrar deneyiniz. |
{
"clientIp": "127.0.0.1",
"amount": "15075",
"email": " [email protected]",
"gsm": "5881231212",
"name": "Ahmet",
"surname": "Veli",
"taxNumber": "12342323411",
"threeD": "true",
"expireDate": "2019-07-30",
"sendEmail": "true"
"installmentList": [2,3,4]
}
Başarılı İşlem Cevap Verisi
{
"responseMessage": "Ödeme linki başarı ile gönderilmiştir.",
"result": "1",
"amount": "150,75 "
"link": "https://link/Xdfgdf",
"linkPaymentId": "832jdasfsdfdsoıfas==",
}
Başarısız İşlem Cevap Verisi
{
"errorCode":"872",
"errorMessage":"T.C. kimlik numarası 11 haneli sayı olmalıdır.",
"responseMessage":"T.C. kimlik numarası 11 haneli sayı olmalıdır.",
"result":"0"
}
public static String prepareToken (String text) throws Exception {
MessageDigest sha1 = MessageDigest.getInstance("SHA-1");
String hash = (new BASE64Encoder()).encode(sha1.digest(text.getBytes(“UTF-8”))); return hash;
}
public static string PrepareToken (string SHA1Data) { SHA1 sha = new SHA1CryptoServiceProvider();
byte[] hashbytes = System.Text.Encoding.UTF8.GetBytes(SHA1Data);
byte[] inputbytes = sha.ComputeHash(hashbytes);
return Convert.ToBase64String(inputbytes);
}
function prepareToken($text) {
$token = base64_encode(sha1($text,true));
return $token;
}
Mağazanız üzerinden bir link oluşturulduğunda ilk olarak “Link Gönderildi,Ödeme Bekleniyor” durumundadır. İlgili link üzerinden ödeme işlemi başarı ile tamamlandığında ilgili linkin durumu ödeme “Link ile Ödeme Başarılı” durumuna getirilir.
PosFix olarak ödeme yapıldığı anda tarafınıza bir adet ödeme yapıldı maili göndermekteyiz. Dökümanda anlatılan servis ise mail ile yapılan bildirime ek olarak sunulan, yapılan ödemenin özet bilgilerini tarafınıza Http post ile tarafınıza ileten servistir.
Temel çalışması mantığı, belirli dataların önceden mağazaya tanımlanmış olan http post kabul eden bir url’e content-type’ application/x-www-form-urlencoded olan bir json post etmektir.
İlgili post işlemi yalnızca başarılı olarak yapılmış ödeme işlemi sonrasında yapılacaktır bu yüzden tarafınıza post edilmiş tüm işlemleri başarılı olarak kabul etmeniz gerekmektedir.
İlgili servisi kullanarak link ile ödeme sonrası bildirim almak isteniyor ise PosFix operasyon ekibi ile iletişime geçilip yukarıda anlatılan akışı destekleyen url bilginizi paylaşmanız gerekmektedir.
Parametre Adı | Açıklama |
---|---|
merchantOrderId |
PosFix tarafından oluşturulmuş, ödemeye ait mağaza sipariş numarası. |
amount |
Link ile ödeme işleminde yapılan ödeme tutarı Kuruş değerinde yollanacaktır. |
paymentDate |
Ödeme işleminin gerçekleştiği tarih bilgisidir. “yyyy-MM-dd HH:mm:ss“ formatında yollanacaktır. |
linkPaymentId |
Ödemenin gerçekleştirildiği işleme ait şifreli ID bilgisi |
result |
Ödeme durumunu belirten sonuç bilgisi. 1 - Ödeme başarılı |
{
"merchantOrderId": 109,
"amount": "100",
"paymentDate": "2019-08-19 16:12:54",
"linkPaymentId": " 00204o9HZ.dt17rie-kesmwtA==",
"result": "1",
}
Kurumunuza ait kayıtlı mağazanın link ile ödeme talebini iletmesi doğrultusunda, başarılı oluşan kayıtların sorgulanmasını sağlayan servistir.
Gönderimi gerçekleştirilmiş link bilgileri sorgulanmak istendiğinde gerekli istek bilgilerini JSON formatında hazırlayarak, https://api.posfix.com.tr/corporate/merchant/linkpayment/list adresine gerekli güvenlik bilgilerini http header bilgisine ekleyerek post eder. PosFix işlem sonucunu yine JSON formatında mağazaya döner.
Listeleme işleminde sayfalandırma yapılmaktadır. Bu nedenle aşağıda tanımlanan örneklerde bu değerlerin ilk gönderimde varsayılan değerlerle gönderilmesi ve gelen cevaba göre sonraki sorguların yapılması entegrasyon aşamasını kolaylaştıracaktır.
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
clientIp |
İstekte bulunan kullanıcının IP adresi |
Zorunlu |
Müşterinin ödeme linkini alacağı email adresi |
Opsiyonel * | |
gsm |
Müşteriye ait cep telefonu bilgisi |
Opsiyonel * |
linkState |
Link durum bilgisi. |
Opsiyonel * |
startDate |
Link oluşturma alanına ait arama başlangıç tarihi. “yyyy-MM-dd HH:mm:ss” formatındadır. |
Opsiyonel * |
endDate |
Link oluşturma alanına ait arama bitiş tarihi. “yyyy-MM-dd HH:mm:ss” formatındadır. |
Opsiyonel * |
pageSize |
Toplam gösterilebilecek sayfa adedidir. 5 ile 15 değerlerine eşit ya da arasında olmalıdır. |
Zorunlu |
pageIndex |
Gösterilecek sayfa indeksi/numarasıdır. Cevap olarak dönülecek olan “pageCount” bilgisi kullanılarak mümkün diğer sayfa indekslerine ulaşılabilir. |
Zorunlu |
Listeleme parametrelerinin herbiri tekil olarak zorunlu olmasa da, listeleme isteğinde en azından bir listeleme istek parametresinin geçerli olarak girilmiş olması gerekmektedir.
Başlangış ve Bitiş tarihi parametreleri bir çift olarak çalışmaktadır. Bu nedenle eğer biri istek içine eklenmiş ise, diğerinin de eklenmesi gerekmektedir.
PosFix, güvenlik kontrolleri için, mağazadan bazı bilgileri request header bilgisinde istemektedir. Aşağıda bu bilgilerin tanımları bulunmaktadır.
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
transactionDate |
İstek zamanı. “yyyy-MM-dd HH:mm:ss“ formatındadır. İşlem zaman aşımına uğramış ise istek reddedilir. Örnek: “2014-08-12 23:59:59” |
Zorunlu |
version |
Entegrasyon versiyon bilgisidir. “1.0” olarak gönderilmelidir |
Zorunlu |
token |
“publicKey:hash” bilgisidir. |
Zorunlu |
Parametre Adı | Açıklama |
---|---|
result |
İşlem sonucu |
errorCode | Hata Kodu. |
errorMessage | Teknik hata mesajı. |
responseMessage | Kullanıcıya gösterilecek hata veya başarılı sonuç mesajı. Başarılı entegrasyon sonrası hata mesajlarının kullanıcıya direkt gösterilmesini öneririz. |
paymentLinkRecords | Link detay bilgileri listesi. Aşağıdaki tabloda iç parametreleri anlatılmıştır. |
Parametre Adı | Açıklama |
---|---|
amount |
Müşteriye iletilen tutar bilgisi Tutar kuruş ayracı olmadan gönderilecektir. |
creationDate | Ödeme Linki’nin yaratıldığı tarih “yyyy-MM-dd HH:mm:ss“ formatında. |
Ödeme Linki’nin gönderildiği e-posta adresi. | |
gsm | Ödeme Linki gönderim isteğinde iletilen cep telefonu numarası. |
linkState |
Ödeme Linkinin durumu 0 - Link İsteği Alındı 1 - Link URL’i yaratıldı 2 - Link Gönderildi, Ödeme Bekleniyor 3 - Link ile Ödeme Başarılı 98 - Link Zaman Aşımına Uğradı 99 - Link Silindi |
linkId | Ödeme Linkinin ID’si. Bu bilgi link silme servisinde kullanılabilmektedir. |
name | Ödeme Linki gönderim isteğinde belirtilen müşteri adı. |
surname | Ödeme Linki gönderim isteğinde belirtilen müşteri soyadı. |
taxNumber | Ödeme Linki gönderim isteğinde belirtilen T.C. vergi numarası. |
tcCertificate | Ödeme Linki gönderim isteğinde belirtilen T.C. Kimlik Numarası. |
Hata Kodu | Açıklama |
---|---|
800 |
İstek boş. |
801 | Token bilgisi boş. |
802 | Token bilgisi hatalı. |
803 | Açık anahtar boş. |
804 | Hash bilgisi boş. |
805 | Entegrasyon versiyon bilgisi boş. |
806 |
Versiyon desteklenmiyor. |
807 |
İstek zaman bilgisi boş. |
808 |
İstek zamanı header bilgisi hatalı. |
809 |
İstek zamanı ile server zamanı uyuşmuyor. Lütfen tekrar deneyiniz. |
810 |
Mağaza açık anahtarı yanlış. |
882 |
Göndermiş olduğunuz token doğru değil. |
3053 |
Başlangıç tarihi zorunlu alandır. |
3055 |
Bitiş tarihi zorunlu alandır |
3078 |
Başlangıç tarihi bitiş tarihinden büyük olamaz |
3046 |
Tarih aralığı 30 günü geçemez |
3054 |
Lütfen geçerli bir başlangıç tarihi giriniz. |
3056 |
Geçerli bir bitiş tarihi giriniz. |
3058 |
pageIndex zorunlu alandır |
3059 |
pageIndex alanı geçersizdir. |
3060 |
pageSize zorunlu alandır |
3061 |
pageSize alanı geçersizdir |
3094 |
Lütfen cep telefon numarası giriniz |
3095 |
Lütfen cep telefon numarasını başında sıfır olmadan 10 hane olarak giriniz. |
3096 |
Girilen cep telefonu kara listede olduğu için isteğiniz reddedilmiştir. Daha fazla bilgi için [email protected] üzerinden iletişime geçiniz. |
3097 |
Lütfen e-posta adresini giriniz. |
3098 |
Lütfen geçerli bir e-posta adresi giriniz. |
3130 |
pageSize parametresi en az 5, en çok 15 olabilir |
3159 |
Başlangıç tarihi boş iken, bitiş tarihi dolu olamaz. |
3160 |
Başlangıç tarihi dolu iken, bitiş tarihi boş olamaz. |
3161 |
Ödeme Linki listeleme isteğinde en azından bir kriter belirtilmesi gerekmektedir. |
4012 |
Ödeme Linki statüsü boş. |
4013 |
Ödeme Linki statüsü geçersiz. |
1000 |
İşleminiz gerçekleştirilirken beklenmedik bir hata oluştu. Lütfen daha sonra tekrar deneyiniz. |
{
"clientIp":"127.0.0.1",
"email":"[email protected]",
"gsm":"5881231212",
"linkState":"3",
"endDate":"2016-11-30",
"startDate":"2016-11-08"
"pageSize":"5"
"pageIndex":"1"
}
Başarılı İşlem Cevap Verisi
{
"responseMessage": "Ödeme Linki listeme işlemi sonuçları başarıyla gönderildi.",
"result": "1",
"pageIndex ": "1",
"pageSize ": "5",
"pageCount ": "1",
"paymentLinkRecords": [
{
"amount": "10,10",
"creationDate": "2016-11-16 13:15:00",
"description": "Ödemenizi buradan yapabilirsiniz",
"email": "[email protected]",
"gsm": "5884043366",
"linkId": "001zuIpfDR/tk7mz5qRJrjkjg==",
"linkState": "3",
"name": "Ozan ",
"surname": "Aksu",
"taxNumber": "1881777842",
"tcCertificate": "59915578895"
},
{
"amount": "150",
"creationDate": "2016-11-19 16:00:00",
"description": "Ödemenizi buradan yapabilirsiniz",
"email": "[email protected]",
"gsm": "5884043366",
"linkId": "001MgiU/Dv8sJemWoDzJgBo/Q==",
"linkState": "3",
"name": "Ozan",
"surname": "Nazo",
"taxNumber": "1881777842",
"tcCertificate": "59915578895"
}
]
}
Başarısız İşlem Cevap Verisi
{
"errorCode":"3098",
"errorMessage":"Geçerli bir email adresi giriniz",
"responseMessage":"Geçerli bir email adresi giriniz",
"result":"0"
}
public static String prepareToken (String text) throws Exception {
MessageDigest sha1 = MessageDigest.getInstance("SHA-1");
String hash = (new BASE64Encoder()).encode(sha1.digest(text.getBytes(“UTF-8”))); return hash;
}
public static string PrepareToken (string SHA1Data) { SHA1 sha = new SHA1CryptoServiceProvider();
byte[] hashbytes = System.Text.Encoding.UTF8.GetBytes(SHA1Data);
byte[] inputbytes = sha.ComputeHash(hashbytes);
return Convert.ToBase64String(inputbytes);
}
function prepareToken($text) {
$token = base64_encode(sha1($text,true));
return $token;
}
Kurumunuza ait kayıtlı mağazanın link ile ödeme talebini iletmesi doğrultusunda oluşan bağlantıların yetkisinin kaldırılarak etkisizleştirilmesi (silinmesi) işlemini sağlayan servistir.
Link silinmek istendiğinde gerekli istek bilgilerini JSON formatında hazırlayarak, https://api.posfix.com.tr/corporate/merchant/linkpayment/delete adresine gerekli güvenlik bilgilerini http header bilgisine ekleyerek post eder. PosFix işlem sonucunu yine JSON formatında mağazaya döner.
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
linkId |
Listeleme Servisi ile iletilmiş olan Ödeme Linki ID’si |
Zorunlu |
clientIp |
İstekte bulunan kullanıcının IP adresi |
Zorunlu |
PosFix, güvenlik kontrolleri için, mağazadan bazı bilgileri request header bilgisinde istemektedir. Aşağıda bu bilgilerin tanımları bulunmaktadır.
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
transactionDate |
İstek zamanı. “yyyy-MM-dd HH:mm:ss“ formatındadır. İşlem zaman aşımına uğramış ise istek reddedilir. Örnek: “2014-08-12 23:59:59” |
Zorunlu |
version |
Entegrasyon versiyon bilgisidir. “1.0” olarak gönderilmelidir |
Zorunlu |
token |
“publicKey:hash” bilgisidir. |
Zorunlu |
Parametre Adı | Açıklama |
---|---|
result |
İşlem sonucu |
errorCode | Hata Kodu |
errorMessage | Teknik hata mesajı. |
responseMessage | Kullanıcıya gösterilecek hata veya başarılı sonuç mesajı. Başarılı entegrasyon sonrası hata mesajlarının kullanıcıya direkt gösterilmesini öneririz. |
Hata Kodu | Açıklama |
---|---|
800 |
İstek boş. |
801 | Token bilgisi boş. |
802 | Token bilgisi hatalı. |
803 | Açık anahtar boş. |
804 | Hash bilgisi boş. |
805 | Entegrasyon versiyon bilgisi boş. |
806 |
Versiyon desteklenmiyor. |
807 |
İstek zaman bilgisi boş. |
808 |
İstek zamanı header bilgisi hatalı. |
809 |
İstek zamanı ile server zamanı uyuşmuyor. Lütfen tekrar deneyiniz. |
810 |
Mağaza açık anahtarı yanlış. |
811 |
Mağaza yayında değil. |
882 |
Göndermiş olduğunuz token doğru değil. |
3165 |
Ödeme Linki kayıtlarının silinmesi işlemi için gelen istekte silinecek kayıt bilgisi bulunamadı. |
3166 |
Ödeme Linki kayıtlarının silinmesi işlemi için gelen istekte silinecek kayıt bilgisi tanımlanamadı. |
3167 |
Ödeme Linki kayıtlarının silinmesi işlemi bilinmeyen bir sebeple başarısız oldu. |
3168 |
Ödeme Linki kayıtlarının silinmesi işlemi silinmek istenen link kaydı ödeme aşamasını geçtiğinden dolayı gerçekleştirilmedi. |
3169 |
Ödeme Linki kayıtlarının silinmesi isteğinde belirtilen kayıt bilgisi bulunamadı. |
1000 |
İşleminiz gerçekleştirilirken beklenmedik bir hata oluştu. Lütfen daha sonra tekrar deneyiniz. |
{
"clientIp":"127.0.0.1",
"linkId":"Rq12/RyqdJuNKa08HL=="
}
Başarılı İşlem Cevap Verisi
{
"responseMessage": "Ödeme Linki kaydı başarı ile silindi.",
"result": "1"
}
Başarısız İşlem Cevap Verisi
{
"errorCode":"3172",
"errorMessage":"Ödeme Linki kaydının silinmesi işlemine izin verilmedi.",
"responseMessage":"Ödeme Linki kaydının silinmesi işlemine izin verilmedi.",
"result":"0"
}
public static String prepareToken (String text) throws Exception {
MessageDigest sha1 = MessageDigest.getInstance("SHA-1");
String hash = (new BASE64Encoder()).encode(sha1.digest(text.getBytes(“UTF-8”))); return hash;
}
public static string PrepareToken (string SHA1Data) { SHA1 sha = new SHA1CryptoServiceProvider();
byte[] hashbytes = System.Text.Encoding.UTF8.GetBytes(SHA1Data);
byte[] inputbytes = sha.ComputeHash(hashbytes);
return Convert.ToBase64String(inputbytes);
}
function prepareToken($text) {
$token = base64_encode(sha1($text,true));
return $token;
}
Mağaza, müşteri üyelik bilgilerini ve kart bilgilerini aldıktan sonra, ödeme verilerini JSON formatında hazırlayarak https://api.posfix.com.tr/rest/payment/preauth web servis adresine gerekli güvenlik bilgilerini http header bilgisine ekleyerek post eder. PosFix işlem sonucunu yine JSON formatında mağazaya döner.
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
mode |
İstek modu. “P” veya “T” gönderilmelidir. |
Zorunlu |
orderId |
Mağazanın ilgili sipariş ile ilişkilendirdiği her bir istek için benzersiz olan tekil sipariş kodu. |
Zorunlu |
cardOwnerName |
Kart üzerindeki ad. |
Zorunlu |
cardNumber |
Kart numarası. |
* |
cardExpireMonth |
Kart son kullanma tarihi ay parametresi |
* |
cardExpireYear |
Kart son kullanma tarihi yıl parametresi. |
* |
cardCvc |
Kartın arkasındaki güvenlik kodu: |
* |
userId |
Mağaza kullanıcısını referans eden bilgi. |
* |
cardId |
Mağaza kullanıcısının kartını referans eden kart kaydetme işlemi sonucunda oluşan id bilgisi. |
* |
installment |
Taksit Sayısı. |
Zorunlu |
amount |
Karttan bloke edilecek olan toplam sipariş tutarı. |
Zorunlu |
echo |
Mağazaya istek sonucunda geri gönderilecek bilgi alanıdır. |
Opsiyonel |
vendorId |
PosFix tarafından sağlanan altyapı sağlayıcı id bilgisi. Mağaza kendi yazılımını kullanıyor ise bu alan gönderilmemelidir. |
Opsiyonel |
purchaser |
Müşteri Bilgileri. Aşağıdaki tabloda iç parametreleri anlatılmıştır. |
Opsiyonel |
products |
Ürün Bilgileri. Aşağıdaki tabloda iç parametreleri anlatılmıştır. |
Zorunlu |
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
purchaserName |
Müşteri isim bilgisi. |
Zorunlu |
purchaserSurname |
Müşteri soyisim bilgisi. |
Zorunlu |
purchaserEmail |
Müşteri e-posta bilgisi. |
Zorunlu |
clientIp |
Müşteri istemci IP adresi |
Zorunlu |
birthDate |
Müşteri doğum tarihi bilgisi. “yyyy-MM-dd” formatında olmalıdır. |
Opsiyonel |
gsmNumber |
Müşteri cep telefonu bilgisi. |
Opsiyonel |
tcCertificate |
Müşteri T.C. Kimlik Numarası bilgisi. 11 haneli olmalıdır. |
Opsiyonel |
invoiceAddress |
Fatura adresi bilgileri. Aşağıdaki tabloda iç parametreleri anlatılmıştır. |
Opsiyonel |
shippingAddress |
Kargo adresi bilgileri. Aşağıdaki tabloda iç parametreleri anlatılmıştır. |
Opsiyonel |
Bilgiler ödeme sahterkarlık kontrollerinde kullanılmaktadır.
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
name |
İsim bilgisi. |
Opsiyonel |
surname |
Soyisim bilgisi. |
Opsiyonel |
address |
Adres bilgisi. |
Opsiyonel |
zipcode |
Posta kodu bilgisi. |
Opsiyonel |
city |
Şehir bilgisi. |
Opsiyonel |
country |
Ülke bilgisi. ISO 3166-1 alpha-2 standardındaki ülke kodu. Türkiye için “TR”. |
Opsiyonel |
tcCertificate |
T.C. Kimlik numarası bilgisi. |
Opsiyonel |
taxNumber |
Vergi numarası bilgisi |
Opsiyonel |
taxOffice |
Vergi dairesi bilgisi |
Opsiyonel |
companyName |
Şirket ismi bilgisi |
Opsiyonel |
phoneNumber |
Telefon bilgisi |
Opsiyonel |
Bilgiler ödeme sahterkarlık kontrollerinde kullanılmaktadır.
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
name |
İsim bilgisi. |
Opsiyonel |
surname |
Soyisim bilgisi. |
Opsiyonel |
address |
Adres bilgisi. |
Opsiyonel |
zipcode |
Posta kodu bilgisi. |
Opsiyonel |
city |
Şehir bilgisi. |
Opsiyonel |
country |
Ülke bilgisi. ISO 3166-1 alpha-2 standardındaki ülke kodu. Türkiye için “TR”. |
Opsiyonel |
phoneNumber |
Telefon bilgisi |
Opsiyonel |
Bilgiler ödeme sahterkarlık kontrollerinde kullanılmaktadır.
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
productCode |
Ürün kodu bilgisi. |
Opsiyonel |
productName |
Ürün isim bilgisi. |
Opsiyonel |
quantity |
Ürün adet bilgisi. |
Opsiyonel |
price |
Ürün birim fiyat bilgisi. |
Opsiyonel |
PosFix, güvenlik kontrolleri için, mağazadan bazı bilgileri request header bilgisinde istemektedir. Aşağıda bu bilgilerin tanımları bulunmaktadır.
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
transactionDate |
İstek zamanı. “yyyy-MM-dd HH:mm:ss“ formatındadır. İşlem zaman aşımına uğramış ise istek reddedilir. Örnek: “2014-08-12 23:59:59” |
Zorunlu |
version |
Entegrasyon versiyon bilgisidir. “1.0” olarak gönderilmelidir |
Zorunlu |
token |
“publicKey:hash” bilgisidir. Hash bilgisi; ' privateKey + orderId + amount + mode + cardOwnerName + cardExpireMonth + cardExpireYear + cardCvc + Name + SurName + Email + transactionDate ' alanlarını birbirlerine, verilen sıra ile ekleyerek, SHA1 kriptografik hash fonksiyonunun base64 methodu ile encode edilmesi sonucunda oluşur. Hash oluşturma fonksiyonu örnekleri 2 no’lu başlıkta anlatılmıştır. Example : token =public key + ‘:’ + base64[ sha1[("privateKey + orderId + amount + mode + cardOwnerName + cardNumber + cardExpireMonth + cardExpireYear + cardCvc + Name + Surname + Email + transactionDate ")]] Veri Örneği: token = “ASKJH98675ASDASDPO:jhsa/gd+89dfg0df6SA/dfg8967==” |
Zorunlu |
Parametre Adı | Açıklama |
---|---|
result |
İşlem sonucu |
orderId | Mağaza sipariş Id |
amount | Sipariş toplam tutar bilgisi. |
mode |
İstek modu. |
publicKey | Mağaza açık anahtar bilgisi. |
echo | Mağazanın istek bilgisinde iletmiş olduğu echo verisi. |
errorCode | Hata Kodu |
errorMessage |
Hata Mesajı |
transactionDate |
Hash hesaplamasında kullanılacak zaman bilgisi. “yyyy-MM-dd HH:mm:ss“ formatındadır. |
hash |
“orderId + result + amount + mode + errorCode + errorMessage + transactionDate + publicKey + privateKey” alanlarını birbirlerine, verilen sıra ile ekleyerek, SHA1 kriptografik hash fonksiyonun base64 methodu ile encode edilmesi sonucunda bu değer oluşur. |
{
"amount": "2000",
"orderId": "73573622-a67a-46e9-b33a-cbe58e4b550c",
"mode": "T",
"cardOwnerName": "Jack Connor",
"cardNumber": "5571135571135575",
"cardExpireMonth": "07",
"cardExpireYear": "22",
"cardCvc": "123",
"installment": "1",
"vendorId": "10100",
"echo": "Payment Test",
"products": [
{
"productCode": "1",
"productName": "iphone X",
"quantity": "1",
"price": "1000"
},
{
"productCode": "1",
"productName": "iphone 8",
"quantity": "1",
"price": "1000"
}
],
"purchaser": {
"name": "Jack",
"surname": "Connor",
"email": "[email protected]",
"birthDate": "29.08.1995",
"gsmNumber": "5400343434",
"tcCertificate": "99999999999",
"clientIp": "192.168.0.54",
"invoiceAddress": {
"name": "Jack",
"surname": "Connor",
"address": "Kaliforniya",
"zipcode": "00001",
"city": "Los Angeles",
"country": "ADB",
"tcCertificate": "99999999999",
"taxNumber": "9999999999",
"taxOffice": "Los Angeles",
"companyName": "PosFix",
"phoneNumber": "05340343434"
},
"shippingAddress": {
"name": "Jack",
"surname": "Connor",
"address": "Kaliforniya",
"zipcode": "00001",
"city": "Los Angeles",
"country": "ABD",
"phoneNumber": "05340343434"
}
}
}
Başarılı İşlem Cevap Verisi
{
"result": 1,
"amount": "2000",
"errorCode": null,
"errorMessage": null,
"echo": "Payment Test",
"transactionDate": "2021-02-15 11:21:58",
"hash": "u+eiNNK/qf/YOmLldqP9coL5vuI=",
"mode": "T",
"orderId": "cca97e4f-4b73-427a-9fa3-4641b8ea1e86",
"publicKey": "EILSMVQZJY2XY7R"
}
Başarısız İşlem Cevap Verisi
{
"result": 0,
"amount": "2000",
"errorCode": "221",
"errorMessage": "Mağaza Ön otorizasyona açık değil.",
"echo": "Payment Test",
"transactionDate": "2021-02-15 11:15:57",
"hash": "hq7yhCXwTX0tV6dBWJ7iFjNn8OA=",
"mode": "T",
"orderId": "73573622-a67a-46e9-b33a-cbe58e4b550c",
"publicKey": "EILSMVQZJY2XY7R"
}
public static String prepareToken (String text) throws Exception {
MessageDigest sha1 = MessageDigest.getInstance("SHA-1");
String hash = (new BASE64Encoder()).encode(sha1.digest(text.getBytes(“UTF-8”))); return hash;
}
public static string PrepareToken (string SHA1Data) { SHA1 sha = new SHA1CryptoServiceProvider();
byte[] hashbytes = System.Text.Encoding.UTF8.GetBytes(SHA1Data);
byte[] inputbytes = sha.ComputeHash(hashbytes);
return Convert.ToBase64String(inputbytes);
}
function prepareToken($text) {
$token = base64_encode(sha1($text,true));
return $token;
}
Mağaza, müşteri üyelik bilgilerini ve kart bilgileri ile daha önce bir ön otorizasyon işlemi başlatıktan sonra, istenilen verileri Json formatında hazırlayarak https://api.posfix.com.tr/rest/payment/postauth web servis adresine gerekli güvenlik bilgilerini http header bilgisine ekleyerek post eder. PosFix işlem sonucunu yine Json formatında mağazaya döner.
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
mode |
İstek modu. “P” veya “T” gönderilmelidir. |
Zorunlu |
orderId |
Mağazanın ilgili sipariş ile ilişkilendirdiği her bir istek için benzersiz olan tekil sipariş kodu. |
Zorunlu |
amount |
Karttan çekilecek olan toplam sipariş tutarı. |
Zorunlu |
clientIp |
Müşteri istemci IP adresi |
Zorunlu |
PosFix, güvenlik kontrolleri için, mağazadan bazı bilgileri request header bilgisinde istemektedir. Aşağıda bu bilgilerin tanımları bulunmaktadır.
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
transactionDate |
İstek zamanı. “yyyy-MM-dd HH:mm:ss“ formatındadır. İşlem zaman aşımına uğramış ise istek reddedilir. Örnek: “2014-08-12 23:59:59” |
Zorunlu |
version |
Entegrasyon versiyon bilgisidir. “1.0” olarak gönderilmelidir |
Zorunlu |
token |
“publicKey:hash” bilgisidir. Hash bilgisi; 'privateKey + orderId + amount + mode + clientIp + transactionDate' alanlarını birbirlerine, verilen sıra ile ekleyerek, SHA1 kriptografik hash fonksiyonunun base64 methodu ile encode edilmesi sonucunda oluşur. Example Hash oluşturma fonksiyonu örnekleri 2 no’lu başlıkta anlatılmıştır. : token =public key + ‘:’ + base64[ sha1[("privateKey + orderId + amount + mode + clientIp + transactionDate ")]] Veri Örneği: token = “ASKJH98675ASDASDPO:jhsa/gd+89dfg0df6SA/dfg8967==” |
Zorunlu |
Parametre Adı | Açıklama |
---|---|
result |
İşlem sonucu |
orderId | Mağaza sipariş Id |
amount | Sipariş toplam tutar bilgisi. |
mode |
İstek modu. |
publicKey | Mağaza açık anahtar bilgisi. |
echo | Mağazanın istek bilgisinde iletmiş olduğu echo verisi. |
errorCode | Hata Kodu. |
errorMessage |
Hata Mesajı |
transactionDate |
Hash hesaplamasında kullanılacak zaman bilgisi. “yyyy-MM-dd HH:mm:ss“ formatındadır. |
hash |
“orderId + result + amount + mode + errorCode + errorMessage + transactionDate + publicKey + privateKey” alanlarını birbirlerine, verilen sıra ile ekleyerek, SHA1 kriptografik hash fonksiyonun base64 methodu ile encode edilmesi sonucunda bu değer oluşur. |
{
"orderId": "b3091d88-6320-4446-be6c-7a1f8e6e73c7"
" amount ": "100"
"mode": "T",
"clientIp": "123.123.12.1"
}
Başarılı İşlem Cevap Verisi
{
"result": 1,
"amount": "100",
"transactionDate": "2021-02-04 11:35:58",
"hash": "MpZnLO2JJv3WHeZEUJcdQCNJoAI=",
"mode": "T",
"orderId": "929f6931-6e23-47ba-912f-7eb2655110a1",
"publicKey": "EILSMVQZJY2XY7R"
}
Başarısız İşlem Cevap Verisi
{
"result": 0,
"amount": "100",
"errorCode": "882",
"errorMessage": "Göndermiş olduğunuz token doğru değil.",
"transactionDate": "2021-02-04 11:19:05",
"hash": "GUfwYpf1dl30XeTpT5IAvq7qGa0=",
"mode": "T",
"orderId": "929f6931-6e23-47ba-912f-7eb2655110a1",
"publicKey": "EILSMVQZJY2XY7R"
}
Başarısız İşlem Cevap Verisi (Mağaza Bulunamadı)
Mağaza bulunamadığı zaman hash ve transactionDate alanları oluşturulamayacağı için geri dönüş değerlerine eklenmez. {
"result": 0,
"amount": "100",
"errorCode": "810",
"errorMessage": "Mağaza açık anahtarı yanlış.",
"mode": "T",
"orderId": "929f6931-6e23-47ba-912f-7eb2655110a1"
}
Hata Kodu | Açıklama |
---|---|
1 |
Ödeme işleminiz bankanız tarafından onaylanmamıştır. Bankanızı arayarak detaylı bilgi alabilirsiniz. |
2 |
Ödeme işleminiz bankanız tarafından reddedilmiştir. Bankanızı arayarak detaylı bilgi alabilirsiniz. |
4 |
Kart limitiniz yetersiz olduğundan dolayı ödeme işleminiz gerçekleştirilemedi. |
5 |
Kartınızın süresi dolmuş, bu kart ile işlem gerçekleştiremezsiniz. Lütfen başka bir kart ile tekrar deneyiniz. |
7 |
Kart kapalı. Lütfen tekrar denemeyiniz. Bankanızı arayarak detaylı bilgi alabilirsiniz. |
8 |
Kart ile işlem yapılamaz. Lütfen tekrar denemeyiniz. Bankanızı arayarak detaylı bilgi alabilirsiniz. |
9 |
Kartınızın bu işlem için yetkisi yoktur. Lütfen bankanız ile irtibata geçiniz. |
10 |
Ödeme işleminiz gerçekleştirilemedi. Kartınız yenilenmiş. Bankanızı arayarak detaylı bilgi alabilirsiniz. |
14 |
Ödeme işleminiz de kullanmış olduğunuz kart ile 1 TL nin altında ödeme gerçekleştiremezsiniz. |
16 |
Ödeme işleminiz gerçekleştirilemedi. Kart bankasına ulaşılamıyor. Bankanızı arayarak detaylı bilgi alabilirsiniz. |
17 |
Kart banka sistemlerinde bulunamadı. Lütfen bilgilerinizi kontrol edip tekrar deneyiniz. |
18 |
Şu anda ödeme yapmak istediğiniz kartın bankası hizmet verememektedir. Lütfen daha sonra tekrar deneyiniz. |
38 |
Ödeme işleminiz zaman aşımına uğramıştır. Bankanızdan yanıt alınamıyor. Lütfen tekrar deneyiniz. |
81 |
Kart sahibi veya bankası 3D Secure sistemine kayıtlı değil. Lütfen bankanız ile irtibata geçiniz. |
82 |
Kartın bankası sisteme kayıtlı değil. |
83 |
Kart sahibi 3D Secure sistemine daha sonra kayıt olmayı seçmiş. Lütfen bankanız ile irtibata geçiniz. |
98 |
Şu anda ödeme yapmak istediğiniz kartın bankası hizmet verememektedir. Lütfen daha sonra tekrar deneyiniz. |
99 |
Ödeme işleminiz gerçekleştirilemedi. Lütfen bilgilerinizi kontrol edip tekrar deneyiniz. |
200 |
Ödemeniz güvenlik kontrolünü geçemedi. |
800 |
İstek boş. |
801 | Token bilgisi boş. |
802 | Token bilgisi hatalı. |
803 | Açık anahtar boş. |
804 | Hash bilgisi boş. |
805 | Entegrasyon versiyon bilgisi boş. |
806 |
Versiyon desteklenmiyor. |
807 |
Ödeme istek zaman bilgisi boş. |
808 |
İstek zamanı header bilgisi hatalı. |
809 |
İstek zamanı ile server zamanı uyuşmuyor. Lütfen tekrar deneyiniz. |
810 |
Mağaza açık anahtarı yanlış. |
811 |
Mağaza yayında değil. |
816 |
Lütfen tutar belirtiniz. |
817 |
Girmiş olduğunuz tutar bilgisi hatalıdır. Lütfen tekrar deneyiniz. |
842 |
Mod alanı boş olamaz. |
843 |
Mod alanı 'P' veya 'T' olmalıdır. |
852 |
Client IP alanı boş olamaz. |
853 |
Client IP alanı hatalı. |
880 |
Sipariş numarası daha önce kullanılmış. Lütfen tekrardan istekte bulununuz. |
881 |
Devam eden bir işleminiz bulunduğundan dolayı bu istek reddedilmiştir. |
882 |
Göndermiş olduğunuz token doğru değil. |
885 |
Mağaza durumu test modu için uygun değil. Lütfen konu ile ilgili PosFix operasyon ekibi ile iletişime geçiniz. |
886 |
Mağaza kayıtlı site adresi ile istekte bulunulan adres aynı değil. Lütfen konu ile ilgili PosFix operasyon ekibi ile iletişime geçiniz. |
890 |
Göndermiş olduğunuz ödeme bilgileri ile daha önceden işlem yapılmış. |
988 |
orderId bilgisi geçersizdir. |
1000 |
İşleminiz gerçekleştirilirken beklenmedik bir hata oluştu. Lütfen daha sonra tekrar deneyiniz. |
public static String prepareToken (String text) throws Exception {
MessageDigest sha1 = MessageDigest.getInstance("SHA-1");
String hash = (new BASE64Encoder()).encode(sha1.digest(text.getBytes(“UTF-8”))); return hash;
}
public static string PrepareToken (string SHA1Data) { SHA1 sha = new SHA1CryptoServiceProvider();
byte[] hashbytes = System.Text.Encoding.UTF8.GetBytes(SHA1Data);
byte[] inputbytes = sha.ComputeHash(hashbytes);
return Convert.ToBase64String(inputbytes);
}
function prepareToken($text) {
$token = base64_encode(sha1($text,true));
return $token;
}
Dokümanda, mağazanıza ait bir ödemenin iade edilebilirlik durumunun sorgulaması sağlayan servis entegrasyonu, örnekler ve tanımlar ile anlatılmıştır. Bu doküman, PosFix üye işyeri olan mağazalara yardımcı olması amacı ile oluşturulmuştur. Dokümanda anlatılan servis Restful servis olup JSON medya tipinde istekleri kabul etmektedir.
Kurumunuza ait kayıtlı mağazanın PosFix’de yaptığı ödemelerin iade işlemi öncesinde, ödeme durumunun sorgulanarak iade edilmeye uygun durumda olup olmadığının bilgisinin alınması gerekmektedir. Bu servis sonucunda alınan uygunluk değerine göre, bu servisten alınan parametreler ile “Ödeme İade Servisi” çağırılarak ödeme iadesi gerçekleştirilebilir.
İade durumu sorgulanmak istendiğinde gerekli istek bilgilerini JSON formatında hazırlayarak, https://api.posfix.com.tr/corporate/payment/refund/inquiry adresine gerekli güvenlik bilgilerini http header bilgisine ekleyerek post eder. PosFix işlem sonucunu yine JSON formatında mağazaya döner. Servisin sorgulma isteğinde ödeme kimlik bilgisinin olması gerekmektedir. Gerekli ödeme bilgisine, “Ödeme Arama Servisi” üzerinden ulaşılabilir.
PosFix, güvenlik kontrolleri için, mağazadan bazı bilgileri HTTP Header alanında istemektedir. Aşağıda bu bilgilerin tanımları bulunmaktadır:
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
transactionDate |
İstek zamanı “yyyy-MM-dd HH:mm:ss“ formatındadır. İşlem zaman aşımına uğramış ise istek reddedilir. |
Zorunlu |
version |
Entegrasyon versiyon bilgisidir. “1.0” olarak gönderilmelidir. |
Zorunlu |
token |
“publicKey:hash” bilgisidir. |
Zorunlu |
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
clientIp |
İstekte bulunan kullanıcının IP adresi |
Zorunlu |
orderId |
İade edilmek istenen ödemeye ait mağaza sipariş numarası. |
Zorunlu |
amount |
İade yapılası istenen tutar bilgisidir. Tutar kuruş ayracı olmadan gönderilmelidir. Örneğin; 1 TL 100, 12 1200, 130 13000, 1.05 105, 1.2 120 olarak gönderilmelidir. |
Zorunlu |
Parametre Adı | Açıklama |
---|---|
result |
İşlem sonucu |
errorCode | Hata Kodu |
errorMessage | Hata Mesajı |
responseMessage | Kullanıcıya gösterilecek hata veya başarılı sonuç mesajı. Başarılı entegrasyon sonrası hata mesajlarının kullanıcıya direkt gösterilmesini öneririz. |
refundHash | İşlem sonucu 1 olduğu durumlarda gönderilen iade edilmeye aday ödemenin anahtar kimlik bilgisi. Bu bilgi ile Ödeme İade Servisi çağırılarak iade işlemi gerçekleştirilebilir. |
//Request
public static string PrepareToken (string SHA1Data) { SHA1 sha = new SHA1CryptoServiceProvider();
byte[] hashbytes = System.Text.Encoding.UTF8.GetBytes(SHA1Data);
byte[] inputbytes = sha.ComputeHash(hashbytes);
return Convert.ToBase64String(inputbytes);
}
//request
public static String prepareToken (String text) throws Exception {
MessageDigest sha1 = MessageDigest.getInstance("SHA-1");
String hash = (new BASE64Encoder()).encode(sha1.digest(text.getBytes(“UTF-8”))); return hash;
}
//request
function prepareToken($text) {
$token = base64_encode(sha1($text,true));
return $token;
}
Dokümanda, mağazanız üzerinden gerçekleşmiş bir ödemeyi iade edebilmenizi sağlayan servis entegrasyonu, örnekler ve tanımlar ile anlatılmıştır. Bu doküman, PosFix üye işyeri olan mağazalara yardımcı olması amacı ile oluşturulmuştur. Dokümanda anlatılan servis Restful servis olup JSON medya tipinde istekleri kabul etmektedir.
Kurumunuza ait kayıtlı mağazanın PosFix’da yaptığı ödemelerin iade işlemi öncesinde, ödeme durumunun sorgulanarak iade edilmeye uygun durumda olup olmadığının bilgisinin alınması gerekmektedir. Bu servis sonucunda alınan uygunluk değerine göre, bu servisten alınan parametreler ile “Ödeme İade Servisi” çağırılarak ödeme iadesi gerçekleştirilebilir.
İade durumu sorgulanmak istendiğinde gerekli istek bilgilerini JSON formatında hazırlayarak, https://api.posfix.com.tr/corporate/payment/refund adresine gerekli güvenlik bilgilerini http header bilgisine ekleyerek post eder. PosFix işlem sonucunu yine JSON formatında mağazaya döner. Servisin, ilgili direkt ödemenin iade edilebilir sorgusunun yapılmış bir kayıt bilgisine ihtiyacı vardır. Bu bilgiye “Üye Mağaza İade Sorgulama Servisi” üzerinden ulaşılabilir.
PosFix, güvenlik kontrolleri için, mağazadan bazı bilgileri HTTP Header alanında istemektedir. Aşağıda bu bilgilerin tanımları bulunmaktadır:
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
transactionDate |
İstek zamanı “yyyy-MM-dd HH:mm:ss“ formatındadır. İşlem zaman aşımına uğramış ise istek reddedilir. |
Zorunlu |
version |
Entegrasyon versiyon bilgisidir. “1.0” olarak gönderilmelidir. |
Zorunlu |
token |
“publicKey:hash” bilgisidir. |
Zorunlu |
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
clientIp |
İstekte bulunan kullanıcının IP adresi |
Zorunlu |
orderId |
İade edilmek istenen ödemeye ait mağaza sipariş numarası. |
Zorunlu |
refundHash |
İade edilmeye aday ödemenin anahtar kimlik bilgisi. NOT: Bu bilgi iade sorgulama servisi sonucunda dönen refundHash bilgisidir. |
Zorunlu |
amount |
İade yapılası istenen tutar bilgisidir. Tutar kuruş ayracı olmadan gönderilmelidir. Örneğin; 1 TL 100, 12 1200, 130 13000, 1.05 105, 1.2 120 olarak gönderilmelidir. |
Zorunlu |
Parametre Adı | Açıklama |
---|---|
result |
İşlem sonucu |
errorCode | Hata Kodu. |
errorMessage | Hata Mesajı. |
responseMessage | Kullanıcıya gösterilecek hata veya başarılı sonuç mesajı. Başarılı entegrasyon sonrası hata mesajlarının kullanıcıya direkt gösterilmesini öneririz. |
refundHash | İşlem sonucu 1 olduğu durumlarda gönderilen iade edilmeye aday ödemenin anahtar kimlik bilgisi. Bu bilgi ile Ödeme İade Servisi çağırılarak iade işlemi gerçekleştirilebilir. |
//Request
public static string PrepareToken (string SHA1Data) { SHA1 sha = new SHA1CryptoServiceProvider();
byte[] hashbytes = System.Text.Encoding.UTF8.GetBytes(SHA1Data);
byte[] inputbytes = sha.ComputeHash(hashbytes);
return Convert.ToBase64String(inputbytes);
}
//request
public static String prepareToken (String text) throws Exception {
MessageDigest sha1 = MessageDigest.getInstance("SHA-1");
String hash = (new BASE64Encoder()).encode(sha1.digest(text.getBytes(“UTF-8”))); return hash;
}
//request
function prepareToken($text) {
$token = base64_encode(sha1($text,true));
return $token;
}
Cüzdan servisleri, müşterilerinizin kredi kartlarını PosFix üzerinde saklayarak daha sonra aynı müşterilerinizden tekrar kart bilgisi istemeye gerek kalmadan ödeme yaptırabilmeyi sağlayan servisler bütünüdür.
Genel senaryo, müşteriniz ilk alışverişini yaparken kartını kaydetmek isteyip istemediğini sorarak verilecek onay sonrası 'Cüzdana Kart Ekleme' servisiyle ve kullanıcının sizin sisteminizdeki benzersiz ID'sini ve diğer bilgileri göndererek müşteriye ait kartı PosFix sistemine ekleyebilirsiniz. Bu servis size kartı benzersiz kılan bir cardId dönecektir. Dönen bu ID'yi sisteminizde saklayabileceğiniz gibi istediğiniz anda sizin müşterinize ait kullanıcı ID'niz ile o kullanıcıya ait tüm kartları 'Cüzdandaki Kartları Getir' servisiyle PosFix üzerinden sorgulayıp ekranda gösterebilirsiniz. Herhangi bir müşterinizin kartını PosFix sisteminden istediğiniz zaman 'Cüzdandan Kart Sil' metoduyla silebilirsiniz.
Bu Bölümde, PosFix Direkt Ödeme altyapısı üzerinde çalışan mağaza cüzdan servislerinin entegrasyonu, örnekler ve tanımlar ile anlatılmıştır. Bu bölümde Mağaza kullanıcısına ait kart kaydetme, kaydedilen kullanıcı kartlarını sorgulama ve kayıtlı kart silme işlemleri için entegrasyon bilgilerine erişeceksiniz.
Kullanıcının bir kartı kaydetmek istediği zaman kullanabileceği servistir. Bir kayıtlı kart oluşturulmak istendiğinde kart oluşturma verilerini JSON formatında hazırlayarak, https://api.posfix.com.tr/bankcard/create adresine gerekli güvenlik bilgilerini http header bilgisine ekleyerek post eder. PosFix işlem sonucunu yine JSON formatında mağazaya döner.
PosFix, güvenlik kontrolleri için, mağazadan bazı bilgileri HTTP Header alanında istemektedir. Aşağıda bu bilgilerin tanımları bulunmaktadır:
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
transactionDate |
İstek zamanı. 'yyyy-MM-dd HH:mm:ss' formatındadır. İşlem zaman aşımına uğramış ise istek reddedilir. Örnek: '2014-08-12 23:59:59' İlgili kütüphane içindeki GetTransactionDate() fonksiyonundan elde edilebilir. |
Zorunlu |
version |
Entegrasyon versiyon bilgisidir. “1.0” olarak gönderilmelidir. |
Zorunlu |
token |
“publicKey:hash” bilgisidir. Hash bilgisi; 'privateKey + userId + cardOwnerName + cardNumber + cardExpireMonth + cardExpireYear + clientIp + transactionDate' alanlarını birbirlerine, verilen sıra ile ekleyerek, SHA1 kriptografik hash fonksiyonun base64 methodu ile encode edilmesi sonucunda oluşur. Hash oluşturma fonksiyonu örnekleri burada anlatılmıştır. |
Zorunlu |
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
userId |
Mağaza kullanıcısını referans eden bilgi. |
Zorunlu |
cardOwnerName |
Kart üzerindeki ad. Minimum Uzunluk: 4 - Maksimum Uzunluk: 100 karakter. |
Zorunlu |
cardNumber |
Kart numarası. Minimum Uzunluk: 12 - Maksimum Uzunluk: 19 karakter. |
Zorunlu |
cardAlias |
Kart rumuz bilgisi. |
Zorunlu |
cardExpireMonth |
Kart son kullanma tarihi ay parametresi. Kart son kullanma tarihi ay parametresi: 2 karakter. Example; 05,11, vb. |
Zorunlu |
cardExpireYear |
Kart son kullanma tarihi yıl parametresi. Uzunluk: 2 karakter. Example; 14,19, vb. |
Zorunlu |
clientIp |
Müşteri istemci IP adresi |
Zorunlu |
Parametre Adı | Açıklama |
---|---|
result |
İşlem sonucu |
errorMessage | Hata Mesajı |
errorCode | Hata Kodu |
cardId | Tanımlanmış karta ait PosFix referans bilgisi. Bu bilgi ödeme tahsilatlarında kullanılacaktır. |
maskNumber | Kayıtlı kartın maskelenmiş numara bilgisi |
alias | Kayıtlı kartın rumuz bilgisi |
bankId | Banka id bilgisi. Tüm Türkiye de geçerli olan banka ID bilgisidir. |
bankName | Banka adı bilgisi |
cardFamilyName | Kart aile bilgisi |
supportsInstallment |
Taksit destekleme durumu |
supportsInstallments |
Desteklenen taksit dizisi. Bu alan değeri hem mağazanın taksit aktifliği hem de kartın taksit desteğine göre hesaplanmaktadır. |
supportedInstallments | Desteklenen taksit dizisi. Bu alan değeri hem mağazanın taksit aktifliği hem de ilgili bin numarasının taksit desteğine göre hesaplanmaktadır. Ek olarak eğer kart Ticari kart ise taksit bilgisi mağaza taksit aktifliğine bakılmaksızın hesaplanmaktadır. |
type |
Kart tipi 0 – Kart tipi bilinmiyor 1 – Kredi Kartı 2 – Debit Kart |
serviceProvider |
Servis sağlayıcısı 0 – Servis sağlayıcı bilinmiyor. 1 – Mastercard 2 – Visa 3 – Amex 4 - Troy |
threeDSecureMandatory |
Kayıtlı kartın 3D güvenlik adımı zorunluluğu. Ödeme sırasında 3D secure işlem yapılması zorunluluğu, bu alan değeri hem mağazanın 3D Secure zorunluluğuna hem de kart ailesinin 3D Secure zorunluluğuna bağlı olarak zorunlu olabilir. 0 – 3D Secure zorunlu değil. 1 – 3D Secure zorunlu |
cvcMandatory |
Kayıtlı kartın cvc zorunluluğu. Ödeme sırasında cvc bilgisinin gönderilmesi zorunluluğu, bu alan değeri hem mağazanın cvc zorunluluğuna hem de kart ailesinin cvc zorunluluğuna bağlı olarak zorunlu olabilir. 0 – CVC/CVV’siz ödeme kabulü yapılabilir. 1 – CVC/CVV gönderimi zorunludur. |
//Request
BankCardCreateRequest request = new BankCardCreateRequest();
request.userId = "123456";
request.cardOwnerName = "Fatih Ömeroğlu";
request.cardNumber = "4921309175123221";
request.cardAlias = "Adios";
request.cardExpireMonth = "12";
request.cardExpireYear = "23";
request.clientIp = "127.0.0.1";
BankCardCreateResponse response = BankCardCreateRequest.Execute(request, settings);
//request
BankCardCreateRequest request = new BankCardCreateRequest();
request.userId = "123456";
request.cardOwnerName = "Fatih Coşkun";
request.cardNumber = "4921309175175861";
request.cardAlias = "Adios";
request.cardExpireMonth = "12";
request.cardExpireYear = "23";
request.clientIp = "127.0.0.1";
BankCardCreateResponse response = BankCardCreateRequest.Execute(request, settings);
//request
$request = new BankCardCreateRequest();
$request->userId = "123456";
$request->cardOwnerName = "Fatih Coşkun";
$request->cardNumber = "4921309175175861";
$request->cardAlias = "Adios";
$request->cardExpireMonth = "12";
$request->cardExpireYear = "23";
$request->clientIp=Helper::get_client_ip();
$response=BankCardCreateRequest::execute($request,$settings);
//Request
posfix.AddCardToWallet("23956", "Ahmet Yıldız", "1234123412341234", "Maaş Kartım", "12", "20", "31.145.116.98").then(requestResult => {
res.json(requestResult)
}).catch(err => {
console.log(err)
})
//Request
req=Bankcardcreaterequest.new
req.userId = params[:userId]
req.cardOwnerName = params[:nameSurname]
req.cardNumber = params[:cardNumber]
req.cardAlias = params[:cardAlias]
req.cardExpireMonth = params[:month]
req.cardExpireYear = params[:year]
req.clientIp = "127.0.0.1"
@@returnData= req.execute(req,@@settings)
//Request
req = BankCardCreateRequest()
req.userId = request.POST.get('userId')
req.cardOwnerName = request.POST.get('nameSurname')
req.cardNumber = request.POST.get('cardNumber')
req.cardAlias = request.POST.get('cardAlias')
req.cardExpireMonth = request.POST.get('month')
req.cardExpireYear = request.POST.get('year')
req.clientIp = "127.0.0.1"
response = req.execute(req, config)
//Request
{
"userId":"23956"
"cardOwnerName":"Ahmet Yıldız",
"cardNumber":"1234123412341234",
"cardAlias":"Maaş Kartım",
"cardExpireMonth":"12",
"cardExpireYear ": "20",
"clientIp ": "127.0.0.1"
}
//Response
{
"cardId":" 00179cLjXNFg0WL0J6mFqxbww=="
"maskNumber":"454360******5659"
"alias": "Maaş Kartım",
"cardFamilyName ": "BONUS",
"bankId ": "8",
"bankName ": "GARANTİ",
"supportsInstallment": "1",
"supportedInstallments":[1,2,3,4,5,6,7,8,9,10,11,12],
"type": "2"
"serviceProvider":" VISA"
"threeDSecureMandatory":"1"
"cvcMandatory":"0"
}
Mağazanın, kullanıcının bir kartını veya kayıtlı olan tüm kartlarını sorgulamak istediği zaman kullanabileceği servistir. Kart sorgulaması yapılmak istendiğinde kart sorgulama verileri JSON formatında hazırlanarak, https://api.posfix.com.tr/bankcard/inquiry adresine gerekli güvenlik bilgileri http header bilgisine eklenerek post edilir. PosFix işlem sonucunu yine JSON formatında mağazaya döner.
PosFix, güvenlik kontrolleri için, mağazadan bazı bilgileri HTTP Header alanında istemektedir. Aşağıda bu bilgilerin tanımları bulunmaktadır:
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
transactionDate |
İstek zamanı. 'yyyy-MM-dd HH:mm:ss' formatındadır. İşlem zaman aşımına uğramış ise istek reddedilir. Örnek: '2014-08-12 23:59:59' İlgili kütüphane içindeki GetTransactionDate() fonksiyonundan elde edilebilir. |
Zorunlu |
version |
Entegrasyon versiyon bilgisidir. “1.0” olarak gönderilmelidir. |
Zorunlu |
token |
“publicKey:hash” bilgisidir. Hash bilgisi; 'privateKey + userId + (*)cardId + clientIp + transactionDate' alanlarını birbirlerine, verilen sıra ile ekleyerek, SHA1 kriptografik hash fonksiyonun base64 methodu ile encode edilmesi sonucunda oluşur. Hash oluşturma fonksiyonu örnekleri burada anlatılmıştır. |
Zorunlu |
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
userId |
Mağaza kullanıcısını referans eden bilgi. |
Zorunlu |
cardId |
cardId Tanımlanmış karta ait PosFix referans bilgisi. Bu bilgi ödeme tahsilatlarında kullanılacaktır. |
Opsiyonel |
clientIp |
Müşteri istemci IP adresi |
Zorunlu |
Parametre Adı | Açıklama |
---|---|
result |
İşlem sonucu |
errorMessage | Hata Mesajı |
errorCode | Hata Kodu |
cards - Kayıtlı kart bilgileri dizisi | |
cardId | Tanımlanmış karta ait PosFix referans bilgisi. Bu bilgi ödeme tahsilatlarında kullanılacaktır. |
maskNumber | Kayıtlı kartın maskelenmiş numara bilgisi |
alias | Kayıtlı kartın rumuz bilgisi |
bankId | Banka id bilgisi. Tüm Türkiye de geçerli olan banka ID bilgisidir. |
bankName | Banka adı bilgisi |
cardFamilyName | Kart aile bilgisi |
supportsInstallment |
Taksit destekleme durumu |
supportsInstallments |
Desteklenen taksit dizisi. Bu alan değeri hem mağazanın taksit aktifliği hem de kartın taksit desteğine göre hesaplanmaktadır. |
supportedInstallments | Desteklenen taksit dizisi. Bu alan değeri hem mağazanın taksit aktifliği hem de ilgili bin numarasının taksit desteğine göre hesaplanmaktadır. Ek olarak eğer kart Ticari kart ise taksit bilgisi mağaza taksit aktifliğine bakılmaksızın hesaplanmaktadır. |
type |
Kart tipi 0 – Kart tipi bilinmiyor 1 – Kredi Kartı 2 – Debit Kart |
serviceProvider |
Servis sağlayıcısı 0 – Servis sağlayıcı bilinmiyor. 1 – Mastercard 2 – Visa 3 – Amex 4 - Troy |
threeDSecureMandatory |
Kayıtlı kartın 3D güvenlik adımı zorunluluğu. Ödeme sırasında 3D secure işlem yapılması zorunluluğu, bu alan değeri hem mağazanın 3D Secure zorunluluğuna hem de kart ailesinin 3D Secure zorunluluğuna bağlı olarak zorunlu olabilir. 0 – 3D Secure zorunlu değil. 1 – 3D Secure zorunlu |
cvcMandatory |
Kayıtlı kartın cvc zorunluluğu. Ödeme sırasında cvc bilgisinin gönderilmesi zorunluluğu, bu alan değeri hem mağazanın cvc zorunluluğuna hem de kart ailesinin cvc zorunluluğuna bağlı olarak zorunlu olabilir. 0 – CVC/CVV’siz ödeme kabulü yapılabilir. 1 – CVC/CVV gönderimi zorunludur. |
//Request
BankCardInquiryRequest request = new BankCardInquiryRequest();
request.userId = userId;
request.cardId = cardId;
request.clientIp = "127.0.0.1";
BankCardInquryResponse response = BankCardInquiryRequest.Execute(request, settings);
//request
BankCardInquiryRequest request = new BankCardInquiryRequest();
request.userId = "123456";
request.cardId = "";
request.clientIp = "127.0.0.1";
BankCardInquryResponse response = BankCardInquiryRequest.Execute(request, settings);
//request
$request = new BankCardInquiryRequest();
$request->userId = "123456";
$request->cardId = "";
$request->clientIp=Helper::get_client_ip();
$response=BankCardInquiryRequest::execute($request,$settings);
//Request
posfix.BankCardInquiryRequest(userId, cardId, "127.0.0.1").then(requestResult => {
res.json(requestResult)
}).catch(err => {
console.log(err)
})
//Request
req=Bankcardinquiryrequest.new
req.userId = params[:userId]
req.cardId = params[:cardId]
req.clientIp = "127.0.0.1"
@@returnData= req.execute(req,@@settings)
//Request
req = BankCardInquiryRequest()
req.userId = request.POST.get('userId')
req.cardId = request.POST.get('cardId')
req.clientIp = "127.0.0.1"
response = req.execute(req, config)
//Request
{
"clientIp": "127.0.0.1",
"userId": "179123",
"cardId": "00179cLjXNFg0WL0J6mFqxbww=="
}
//Response
{
"result": "1",
"cards": [
{
"cardId":" 00179cLjXNFg0WL0J6mFqxbww==","
"maskNumber":" 454360******5659"
"alias": "Maaş Kartım",
"cardFamilyName ": "BONUS",
"bankId ": "8",
"bankName ": "GARANTİ",
"supportsInstallment ": "1",
"supportedInstallments":[1,2,3,4,5,6,7,8,9,10,11,12],
"type ": "2"
"serviceProvider":" VISA"
"threeDSecureMandatory":"1"
"cvcMandatory":" 0"
},
{
"cardId":" 89652FaEQERYHcasdSW6mOpre134==","
"maskNumber":" 665785******1345"
"alias": "Ek Kartım",
"cardFamilyName ": "BONUS",
"bankId ": "8",
"bankName ": "ŞEKERBANK",
"supportsInstallment ": "1",
"supportedInstallments":[1,2,3,4,5,6,7,8,9,10,11,12],
"type": "2"
"serviceProvider":" MASTERCARD"
"threeDSecureMandatory":"1"
"cvcMandatory":" 0"
},
]
}
Mağazanın, kullanıcının bir kartını veya kayıtlı olan tüm kartlarını silmek istediği zaman kullanabileceği servistir. Kart silme işlemi yapılmak istendiğinde kart silme verileri JSON formatında hazırlanarak, https://api.posfix.com.tr/bankcard/delete adresine gerekli güvenlik bilgileri http header bilgisine eklenerek post edilir. PosFix işlem sonucunu yine JSON formatında mağazaya döner.
PosFix, güvenlik kontrolleri için, mağazadan bazı bilgileri HTTP Header alanında istemektedir. Aşağıda bu bilgilerin tanımları bulunmaktadır:
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
transactionDate |
İstek zamanı. 'yyyy-MM-dd HH:mm:ss' formatındadır. İşlem zaman aşımına uğramış ise istek reddedilir. Örnek: '2014-08-12 23:59:59' İlgili kütüphane içindeki GetTransactionDate() fonksiyonundan elde edilebilir. |
Zorunlu |
version |
Entegrasyon versiyon bilgisidir. “1.0” olarak gönderilmelidir. |
Zorunlu |
token |
“publicKey:hash” bilgisidir. Hash bilgisi; 'privateKey + userId + (*)cardId + clientIp + transactionDate' alanlarını birbirlerine, verilen sıra ile ekleyerek, SHA1 kriptografik hash fonksiyonun base64 methodu ile encode edilmesi sonucunda oluşur. Hash oluşturma fonksiyonu örnekleri burada anlatılmıştır. |
Zorunlu |
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
userId |
Mağaza kullanıcısını referans eden bilgi. |
Zorunlu |
cardId |
cardId Tanımlanmış karta ait PosFix referans bilgisi. Bu bilgi ödeme tahsilatlarında kullanılacaktır. |
Opsiyonel |
clientIp |
Müşteri istemci IP adresi. |
Zorunlu |
Parametre Adı | Açıklama |
---|---|
result |
İşlem sonucu |
errorMessage | Hata Mesajı |
errorCode | Hata Kodu |
responseMessage |
Kullanıcıya gösterilecek mesaj - Banka kartınız silinmiştir. - Kullanıcı kartları silinmiştir. |
//Request
BankCardDeleteRequest request=new BankCardDeleteRequest();
request.userId = userId;
request.cardId = cardId;
request.clientIp = "127.0.0.1";
BankCardDeleteResponse response = BankCardDeleteRequest.Execute(request, settings);
//Request
BankCardDeleteRequest request=new BankCardDeleteRequest();
request.userId = userId;
request.cardId = cardId;
request.clientIp = "127.0.0.1";
BankCardDeleteResponse response = BankCardDeleteRequest.Execute(request, settings);
//request
$request = new BankCardDeleteRequest();
$request->userId = userId;
$request->cardId = "";
$request->clientIp=Helper::get_client_ip();
$response=BankCardDeleteRequest::execute($request,$settings);
//Request
posfix.BankCardDeleteRequest("179123", "00179cLjXNFg0WL0J6mFqxbww==", "127.0.0.1").then(requestResult => {
res.json(requestResult)
}).catch(err => {
console.log(err)
})
//Request
req=Bankcarddeleterequest.new
req.userId = params[:userId]
req.cardId = params[:cardId]
req.clientIp = "127.0.0.1"
@@returnData= req.execute(req,@@settings)
//Request
req = BankCardDeleteRequest()
req.userId = request.POST.get('userId')
req.cardId = request.POST.get('cardId')
req.clientIp = "127.0.0.1"
response = req.execute(req, config)
//Request
{
"clientIp": "127.0.0.1",
"userId": "179123",
"cardId": "00179cLjXNFg0WL0J6mFqxbww=="
}
//Response
{
{
"result": "1",
"responseMessage": "Kullanıcı kartları silinmiştir."
}
Normal ödeme servislerinde tarif edilen yapılara benzer olarak aynı yapıda çalışan ödeme şeklidir. Normal ödemelerden farklı olarak Kart Numarası, Adı Soyadı, CVC ve SKT gibi alanları '' göndererek ve onların yerine UserId ve CardId bilgisinin gönderilmesi ile yapılan ödeme çeşididir.
PosFix, güvenlik kontrolleri için, mağazadan bazı bilgileri HTTP Header alanında istemektedir. Aşağıda bu bilgilerin tanımları bulunmaktadır:
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
transactionDate |
İstek zamanı. “yyyy-MM-dd HH:mm:ss“ formatındadır. İşlem zaman aşımına uğramış ise istek reddedilir. Örnek: “2014-08-12 23:59:59” İlgili kütüphane içindeki GetTransactionDate() fonksiyonundan elde edilebilir. |
Zorunlu |
version |
Entegrasyon versiyon bilgisidir. “1.0” olarak gönderilmelidir. |
Zorunlu |
token |
“publicKey:hash” bilgisidir. Hash bilgisi; 'privateKey + orderId + amount + mode + (*)cardOwnerName + (*)cardNumber + (*)cardExpireMonth + (*)cardExpireYear + (*)cardCvc + (*)userId + (*)cardId + purchaser.name + purchaser.surname + purchaser.email + transactionDate' alanlarını birbirlerine, verilen sıra ile ekleyerek, SHA1 kriptografik hash fonksiyonun base64 methodu ile encode edilmesi sonucunda oluşur. Hash oluşturma fonksiyonu örnekleri burada anlatılmıştır. |
Zorunlu |
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
mode |
İstek modu. “P” veya “T” gönderilmelidir. |
Zorunlu |
threeD |
3D Secure olmadan gerçekleştirilen ödeme işlemlerinde “false” olarak gönderilmelidir. |
Zorunlu |
orderId |
Mağazanın ilgili sipariş ile ilişkilendirdiği her bir istek için benzersiz olan tekil sipariş kodu. Maksimum Uzunluk: 100 karakter. |
Zorunlu |
cardOwnerName |
Kart üzerindeki ad. Minimum Uzunluk: 4 - Maksimum Uzunluk: 100 karakter. |
* |
cardNumber |
Kart numarası. Minimum Uzunluk: 12 - Maksimum Uzunluk: 19 karakter. |
* |
cardExpireMonth |
Kart son kullanma tarihi ay parametresi Uzunluk: 2 karakter. Example; 05,11, vb. |
* |
cardExpireYear |
Kart son kullanma tarihi yıl parametresi. Uzunluk: 2 karakter. Example; 14,19, vb. |
* |
cardCvc |
Kartın arkasındaki güvenlik kodu: Uzunluk: MasterCard ve Visa kartları için 3 karakter, Amex kartlar için 3 veya 4 karakter. |
* |
userId |
Mağaza kullanıcısını referans eden bilgi. Maksimum uzunluk 255 karakter. |
* |
cardId |
Mağaza kullanıcısının kartını referans eden kart kaydetme işlemi sonucunda oluşan id bilgisi. |
* |
installment |
Taksit Sayısı. Minimum Uzunluk: 1 - Maksimum Uzunluk: 2 karakter. Desteklenen taksit sayıları: 1,2,3,4,5,6,7,8,9,10,11,12 |
Zorunlu |
amount |
Karttan çekilecek olan toplam sipariş tutarı. Sipariş tutarı kuruş ayracı olmadan gönderilmelidir. Örneğin; 1 TL 100, 12 1200, 130 13000, 1.05 105, 1.2 120 olarak gönderilmelidir. |
Zorunlu |
echo |
Mağazaya istek sonucunda geri gönderilecek bilgi alanıdır. Maksimum Uzunluk: 255. |
Opsiyonel |
vendorId |
PosFix tarafından sağlanan altyapı sağlayıcı id bilgisi. Mağaza kendi yazılımını kullanıyor ise bu alan gönderilmemelidir. |
PosFix tarafından sağlanan altyapı sağlayıcı id bilgisi. Mağaza kendi yazılımını kullanıyor ise bu alan gönderilmemelidir. |
purchaser |
Müşteri Bilgileri. Aşağıdaki tabloda iç parametreleri anlatılmıştır. |
Opsiyonel |
products |
Ürün Bilgileri. Aşağıdaki tabloda iç parametreleri anlatılmıştır. |
Zorunlu |
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
purchaserName |
Müşteri isim bilgisi. Minimum Uzunluk: 3 - Maksimum Uzunluk: 50. |
Zorunlu |
purchaserSurname | Müşteri soyisim bilgisi. Minimum Uzunluk: 3 - Maksimum Uzunluk: 50. | Zorunlu |
purchaserEmail | Müşteri e-posta bilgisi. E-posta adresi geçerli bir e-posta adresi olmalıdır. Minimum Uzunluk: 3 - Maksimum Uzunluk: 100. | Zorunlu |
clientIp | Müşteri istemci IP adresi | Zorunlu |
birthDate | Müşteri doğum tarihi bilgisi. “yyyy-MM-dd” formatında olmalıdır. | Opsiyonel |
gsmNumber | Müşteri cep telefonu bilgisi. | Opsiyonel |
tcCertificate | Müşteri T.C. Kimlik Numarası bilgisi. 11 haneli olmalıdır. | Opsiyonel |
invoiceAddress | Fatura adresi bilgileri. Aşağıdaki tabloda iç parametreleri anlatılmıştır. | Opsiyonel |
shippingAddress | Kargo adresi bilgileri.Aşağıdaki tabloda iç parametreleri anlatılmıştır. | Opsiyonel |
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
name | İsim bilgisi. | Opsiyonel |
surname | Soyisim bilgisi. | Opsiyonel |
address | Adres bilgisi. | Opsiyonel |
zipcode | Posta kodu bilgisi. | Opsiyonel |
city | Şehir bilgisi. | Opsiyonel |
country | Ülke bilgisi. ISO 3166-1 alpha-2 standardındaki ülke kodu. Türkiye için “TR”. | ISO 3166-1 alpha-2 standardındaki ülke kodu. Türkiye için “TR”. |
tcCertificate | T.C. Kimlik numarası bilgisi. | Opsiyonel |
taxNumber | Vergi numarası bilgisi | Opsiyonel |
taxOffice | Vergi dairesi bilgisi | Opsiyonel |
companyName | Şirket ismi bilgisi | Opsiyonel |
phoneNumber | Telefon bilgisi | Opsiyonel |
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
name | İsim bilgisi. | Opsiyonel |
surname | Soyisim bilgisi. | Opsiyonel |
address | Adres bilgisi. | Opsiyonel |
zipcode | Posta kodu bilgisi. | Opsiyonel |
city | Şehir bilgisi. | Opsiyonel |
country | Ülke bilgisi. ISO 3166-1 alpha-2 standardındaki ülke kodu. Türkiye için “TR”. | Opsiyonel |
phoneNumber | Telefon bilgisi | Opsiyonel |
Parametre Adı | Açıklama | Opsiyonel/Zorunlu |
---|---|---|
productCode | Ürün kodu bilgisi. | Opsiyonel |
productName | Ürün isim bilgisi. | Opsiyonel |
quantity | Ürün adet bilgisi. | Opsiyonel |
price | Ürün birim fiyat bilgisi. | Opsiyonel |
Parametre Adı | Açıklama |
---|---|
result |
İşlem sonucu |
errorMessage | Hata Mesajı |
errorCode | Hata Kodu |
publicKey | Mağaza açık anahtar bilgisi. |
echo | Mağazanın istek bilgisinde iletmiş olduğu echo verisi. |
transactionDate | Hash hesaplamasında kullanılacak zaman bilgisi. “yyyy-MM-dd HH:mm:ss“ formatındadır. |
mode |
İstek modu. |
orderId | Mağaza sipariş Id |
amount | Sipariş toplam tutar bilgisi. |
hash |
“orderId + result + amount + mode + errorCode + errorMessage + transactionDate + publicKey + privateKey” alanlarını birbirlerine, verilen sıra ile ekleyerek, SHA1 kriptografik hash fonksiyonun base64 methodu ile encode edilmesi sonucunda bu değer oluşur. Not 1: İşlem sonucunda sizlere gönderilen hash bilgisini tarafınıza gelen parametreler ile tekrar hesaplayıp bu alandaki bilgi ile karşılaştırılması gerekmektedir. Eğer aynı hash değeri oluşmuyor ise işlemi reddetmelisiniz. Aksi durumda cevap bilgisi iletiminde üçüncü kişilerin araya girerek sahtekarlık yapabilme olasılığı ortaya çıkacaktır. Not 2: Hash bilgisi hesaplamasında null olan veriler, String “” olarak hesaplanmıştır. Not 3: İstek bilgileri içerisinde mağazanın tanımamasından kaynaklı olarak mağaza bilgileri yoksa cevap bilgisinde hash ve transactionDate alanları gönderilmeyecektir. |
//Request
var request = new ApiPaymentRequest();
request.OrderId = Guid.NewGuid().ToString();
request.Echo = "Echo";
request.Mode = settings.Mode;
request.Amount = "10000"; // 100 tL
request.CardOwnerName = "";
request.CardNumber = "";
request.CardExpireMonth = "";
request.CardExpireYear = "";
request.Installment = "1";
request.Cvc = "";
request.UserId="123456"; //Kullanıcın sizin sistemdeki ID'si request.CardId="0017Wg1W2SZQdDHRD9c5FT3u+SCQ/KuT33lRmpncD2zSaU="; //Kaydedilen Kartın ID'si request.ThreeD = "false";
#region Sipariş veren bilgileri
request.Purchaser = new Purchaser();
request.Purchaser.Name = "Ahmet";
request.Purchaser.SurName = "Veli";
request.Purchaser.BirthDate = "1986-07-11";
request.Purchaser.Email = "[email protected]";
request.Purchaser.GsmPhone = "5881231212";
request.Purchaser.IdentityNumber = "1234567890";
request.Purchaser.ClientIp = "127.0.0.1";
#endregion
#region Fatura bilgileri
request.Purchaser.InvoiceAddress = new PurchaserAddress();
request.Purchaser.InvoiceAddress.Name = "Ahmet";
request.Purchaser.InvoiceAddress.SurName = "Veli";
request.Purchaser.InvoiceAddress.Address = "Mevlüt Pehlivan Mah. PosFix Plaza Şişli";
request.Purchaser.InvoiceAddress.ZipCode = "34782";
request.Purchaser.InvoiceAddress.CityCode = "34";
request.Purchaser.InvoiceAddress.IdentityNumber = "1234567890";
request.Purchaser.InvoiceAddress.CountryCode = "TR";
request.Purchaser.InvoiceAddress.TaxNumber = "123456";
request.Purchaser.InvoiceAddress.TaxOffice = "Kozyatağı";
request.Purchaser.InvoiceAddress.CompanyName = "PosFix";
request.Purchaser.InvoiceAddress.PhoneNumber = "2122222222";
#endregion
#region Kargo Adresi bilgileri
request.Purchaser.ShippingAddress = new PurchaserAddress();
request.Purchaser.ShippingAddress.Name = "Ahmet";
request.Purchaser.ShippingAddress.SurName = "Veli";
request.Purchaser.ShippingAddress.Address = "Mevlüt Pehlivan Mah. PosFix Plaza Şişli";
request.Purchaser.ShippingAddress.ZipCode = "34782";
request.Purchaser.ShippingAddress.CityCode = "34";
request.Purchaser.ShippingAddress.IdentityNumber = "1234567890";
request.Purchaser.ShippingAddress.CountryCode = "TR";
request.Purchaser.ShippingAddress.PhoneNumber = "2122222222";
#endregion
#region Ürün bilgileri
request.Products = new List();
Product p = new Product();
p.Title = "Telefon";
p.Code = "TLF0001";
p.Price = "5000";
p.Quantity = 1;
request.Products.Add(p);
p = new Product();
p.Title = "Bilgisayar";
p.Code = "BLG0001";
p.Price = "5000";
p.Quantity = 1;
request.Products.Add(p);
#endregion
ApiPaymentResponse response = ApiPaymentRequest.Execute(request, settings);
//request
ApiPaymentRequest request = new ApiPaymentRequest();
UUID uuid = UUID.randomUUID();
request.OrderId = uuid.toString();
request.echo = "Echo";
request.mode = settings.Mode;
request.Amount = "10000"; // 100 tL
request.CardOwnerName = "";
request.CardNumber = "";
request.CardExpireMonth = "";
request.CardExpireYear = "";
request.Installment = "1";
request.Cvc = "";
request.ThreeD = "false";
request.UserId="123456"; //Kullanıcın sizin sistemdeki ID'si request.CardId="0017Wg1W2SZQdDHRD9c5FT3u+SCQ/KuT33lRmpncD2zSaU="; //Kaydedilen Kartın ID'si request.Purchaser = new Purchaser();
request.Purchaser.Name = "Ahmet";
request.Purchaser.SurName = "Veli";
request.Purchaser.BirthDate = "1986-07-11";
request.Purchaser.Email = "[email protected]";
request.Purchaser.GsmPhone = "5881231212";
request.Purchaser.IdentityNumber = "1234567890";
request.Purchaser.ClientIp = "127.0.0.1";
request.Purchaser.InvoiceAddress = new PurchaserAddress();
request.Purchaser.InvoiceAddress.Name = "Ahmet";
request.Purchaser.InvoiceAddress.SurName = "Veli";
request.Purchaser.InvoiceAddress.Address = "Mevlüt Pehlivan Mah. PosFix Plaza Şişli";
request.Purchaser.InvoiceAddress.ZipCode = "34782";
request.Purchaser.InvoiceAddress.CityCode = "34";
request.Purchaser.InvoiceAddress.IdentityNumber = "1234567890";
request.Purchaser.InvoiceAddress.CountryCode = "TR";
request.Purchaser.InvoiceAddress.TaxNumber = "123456";
request.Purchaser.InvoiceAddress.TaxOffice = "Kozyatağı";
request.Purchaser.InvoiceAddress.CompanyName = "PosFix";
request.Purchaser.InvoiceAddress.PhoneNumber = "2122222222";
request.Purchaser.ShippingAddress = new PurchaserAddress();
request.Purchaser.ShippingAddress.Name = "Ahmet";
request.Purchaser.ShippingAddress.SurName = "Veli";
request.Purchaser.ShippingAddress.Address = "Mevlüt Pehlivan Mah. PosFix Plaza Şişli";
request.Purchaser.ShippingAddress.ZipCode = "34782";
request.Purchaser.ShippingAddress.CityCode = "34";
request.Purchaser.ShippingAddress.IdentityNumber = "1234567890";
request.Purchaser.ShippingAddress.CountryCode = "TR";
request.Purchaser.ShippingAddress.PhoneNumber = "2122222222";
request.product = new ArrayList();
Product p = new Product();
p.Title = "Telefon";
p.Code = "TLF0001";
p.Price = "5000";
p.Quantity = "1";
request.product.add(p);
p = new Product();
p.Title = "Bilgisayar";
p.Code = "BLG0001";
p.Price = "5000";
p.Quantity = "1";
request.product.add(p);
ApiPaymentResponse response = ApiPaymentRequest.Execute(request, settings);
//request
$request = new ApiPaymentRequest();
$request->OrderId = Helper::Guid();
$request->Echo = "Echo";
$request->Mode = $settings->Mode;
$request->Amount = "10000"; // 100 tL
$request->CardOwnerName = "";
$request->CardNumber = "";
$request->CardExpireMonth = "";
$request->CardExpireYear = "";
$request->Installment = "1";
$request->Cvc = "";
$request->UserId="123456"; //Kullanıcın sizin sistemdeki ID'si $request->CardId="0017Wg1W2SZQdDHRD9c5FT3u+SCQ/KuT33lRmpncD2zSaU="; //Kaydedilen Kartın ID'si $request->ThreeD = "false";
#region Sipariş veren bilgileri
$request->Purchaser = new Purchaser();
$request->Purchaser->Name = "Ahmet";
$request->Purchaser->SurName = "Veli";
$request->Purchaser->BirthDate = "1986-07-11";
$request->Purchaser->Email = "[email protected]";
$request->Purchaser->GsmPhone = "5881231212";
$request->Purchaser->IdentityNumber = "1234567890";
$request->Purchaser->ClientIp = Helper::get_client_ip();
#endregion
#region Fatura bilgileri
$request->Purchaser->InvoiceAddress = new PurchaserAddress();
$request->Purchaser->InvoiceAddress->Name = "Ahmet";
$request->Purchaser->InvoiceAddress->SurName = "Veli";
$request->Purchaser->InvoiceAddress->Address = "Mevlüt Pehlivan Mah-> PosFix Plaza Şişli";
$request->Purchaser->InvoiceAddress->ZipCode = "34782";
$request->Purchaser->InvoiceAddress->CityCode = "34";
$request->Purchaser->InvoiceAddress->IdentityNumber = "1234567890";
$request->Purchaser->InvoiceAddress->CountryCode = "TR";
$request->Purchaser->InvoiceAddress->TaxNumber = "123456";
$request->Purchaser->InvoiceAddress->TaxOffice = "Kozyatağı";
$request->Purchaser->InvoiceAddress->CompanyName = "PosFix";
$request->Purchaser->InvoiceAddress->PhoneNumber = "2122222222";
#endregion
#region Kargo Adresi bilgileri
$request->Purchaser->ShippingAddress = new PurchaserAddress();
$request->Purchaser->ShippingAddress->Name = "Ahmet";
$request->Purchaser->ShippingAddress->SurName = "Veli";
$request->Purchaser->ShippingAddress->Address = "Mevlüt Pehlivan Mah-> PosFix Plaza Şişli";
$request->Purchaser->ShippingAddress->ZipCode = "34782";
$request->Purchaser->ShippingAddress->CityCode = "34";
$request->Purchaser->ShippingAddress->IdentityNumber = "1234567890";
$request->Purchaser->ShippingAddress->CountryCode = "TR";
$request->Purchaser->ShippingAddress->PhoneNumber = "2122222222";
#endregion
#region Ürün bilgileri
$request->Products = array();
$p = new Product();
$p->Title = "Telefon";
$p->Code = "TLF0001";
$p->Price = "5000";
$p->Quantity = 1;
$request->Products[0]=$p;
$p = new Product();
$p->Title = "Bilgisayar";
$p->Code = "BLG0001";
$p->Price = "5000";
$p->Quantity = 1;
$request->Products[1]=$p;
#endregion
$response=ApiPaymentRequest::execute($request,$settings);
//Request
const obj = {
echo: "",
amount: "10000",
publicKey: settings.publicKey,
orderId: Guid.raw(),
mode: settings.mode,
threeD: "false",
cardId: "0017Wg1W2SZQdDHRD9c5FT3u+SCQ/KuT33lRmpncD2zSaU=",
userId: "123456",
cardOwnerName : "",
cardNumber : "",
cardExpireMonth : "",
cardExpireYear : "",
cardCvc : "",
installment : "1",
products: [{
productName: "Telefon",
productCode: "TLF0001",
quantity: "1",
price: "5000"
},
{
productName: "Bilgisayar",
productCode: "BIL0002",
quantity: "1",
price: "5000"
}
],
purchaser: {
birthDate: "1986-07-11",
gsmNumber: "5881231212",
tcCertificate: "1234567890",
name : "Ahmet",
surname : "Veli",
email : "[email protected]",
clientIp : "123.58.7.4",
invoiceAddress: {
name: "Ahmet",
surname: "Veli",
address: "Mevlüt Pehlivan Mah. PosFix Plaza Şişli",
zipcode: "34782",
city: "34",
tcCertificate: "12345678901",
country: "tr",
taxNumber: "123456890",
taxOffice: "Şişli",
companyName: "PosFix",
phoneNumber: "2123886600"
},
shippingAddress: {
name: "Ahmet",
surname: "Veli",
address: "Mevlüt Pehlivan Mah. PosFix Plaza Şişli",
zipcode: "34782",
city: "34",
country: "tr",
phoneNumber: "2123886600"
}
}
}
posfix.ApiPaymentWithWallet(obj).then(results => {
parseString(results, function (err, result) {
if (err) throw new Error(err);
res.json(result)
});
}).catch(err=>{
console.log(err)
})
//Request
req=Apipaymentrequest.new
req.OrderId = SecureRandom.uuid
req.Echo = "Echo"
req.Mode = @@settings.Mode
req.Amount = "10000" # 100 tL
req.CardOwnerName =""
req.CardNumber =""
req.CardExpireMonth = ""
req.CardExpireYear = ""
req.Installment = ""
req.Cvc = ""
req.ThreeD = "false"
req.UserId=params[:userId]
req.CardId=params[:cardId]
#region Sipariş veren bilgileri
req.Purchaser = Purchaser.new
req.Purchaser.Name = "Ahmet"
req.Purchaser.SurName = "Veli"
req.Purchaser.BirthDate = "1986-07-11"
req.Purchaser.Email = "[email protected]"
req.Purchaser.GsmPhone = "5881231212"
req.Purchaser.IdentityNumber = "1234567890"
req.Purchaser.ClientIp = "127.0.0.1"
#endregion
#region Fatura bilgileri
req.Purchaser.Invoiceaddress = Purchaseraddress.new
req.Purchaser.Invoiceaddress.Name = "Ahmet"
req.Purchaser.Invoiceaddress.SurName = "Veli"
req.Purchaser.Invoiceaddress.Address = "Mevlüt Pehlivan Mah. PosFix Plaza Şişli"
req.Purchaser.Invoiceaddress.ZipCode = "34782"
req.Purchaser.Invoiceaddress.CityCode = "34"
req.Purchaser.Invoiceaddress.IdentityNumber = "1234567890"
req.Purchaser.Invoiceaddress.CountryCode = "TR"
req.Purchaser.Invoiceaddress.TaxNumber = "123456"
req.Purchaser.Invoiceaddress.TaxOffice = "Kozyatağı"
req.Purchaser.Invoiceaddress.CompanyName = "PosFix"
req.Purchaser.Invoiceaddress.PhoneNumber = "2122222222"
#endregion
#region Kargo Adresi bilgileri
req.Purchaser.Shippingaddress = Purchaseraddress.new
req.Purchaser.Shippingaddress.Name = "Ahmet"
req.Purchaser.Shippingaddress.SurName = "Veli"
req.Purchaser.Shippingaddress.Address = "Mevlüt Pehlivan Mah. PosFix Plaza Şişli"
req.Purchaser.Shippingaddress.ZipCode = "34782"
req.Purchaser.Shippingaddress.CityCode = "34"
req.Purchaser.Shippingaddress.IdentityNumber = "1234567890"
req.Purchaser.Shippingaddress.CountryCode = "TR"
req.Purchaser.Shippingaddress.PhoneNumber = "2122222222"
#endregion
#region Ürün bilgileri
req.Products = Array.new()
p =Product.new
p.Title = "Telefon"
p.Code = "TLF0001"
p.Price = "5000"
p.Quantity = 1
req.Products << p
p =Product.new
p.Title = "Bilgisayar"
p.Code = "BLG0001"
p.Price = "5000"
p.Quantity = 1
req.Products << p
#endregion
@@returnData= req.execute(req,@@settings)
//Request
req = ApiPaymentRequest()
req.OrderId = str(randint(1, 10000))
req.Echo = "Echo"
req.Mode = config.Mode
req.Amount = "10000" #100TL
req.CardOwnerName = ""
req.CardNumber = ""
req.CardExpireMonth = ""
req.CardExpireYear = ""
req.Installment = "1"
req.Cvc = ""
req.ThreeD = "false"
req.UserId = request.POST.get('userId') #Kullanıcın sizin sistemdeki ID'si req.CardId = request.POST.get('cardId') #Kaydedilen Kartın ID'si # Sipariş veren bilgileri
req.Purchaser = req.PurchaserClass()
req.Purchaser.name = "Ahmet"
req.Purchaser.surname = "Veli"
req.Purchaser.birthDate = "1986-07-11"
req.Purchaser.email = "[email protected]"
req.Purchaser.gsmPhone = "5889541011"
req.Purchaser.tcCertificate = "1234567890"
req.Purchaser.clientIp = "127.0.0.1"
# Fatura bilgileri
req.Purchaser.invoiceAddress = req.PurchaserAddress()
req.Purchaser.invoiceAddress.name = "Ahmet"
req.Purchaser.invoiceAddress.surname = "Veli"
req.Purchaser.invoiceAddress.address = "Mevlüt Pehlivan Mah. PosFix Plaza Şişli"
req.Purchaser.invoiceAddress.zipCode = "34782"
req.Purchaser.invoiceAddress.cityCode = "34"
req.Purchaser.invoiceAddress.tcCertificate = "1234567890"
req.Purchaser.invoiceAddress.country = "TR"
req.Purchaser.invoiceAddress.phoneNumber = "2122222222"
# Kargo adresi bilgileri
req.Purchaser.shippingAddress = req.PurchaserAddress()
req.Purchaser.shippingAddress.name = "Ahmet"
req.Purchaser.shippingAddress.surname = "Veli"
req.Purchaser.shippingAddress.address = "Mevlüt Pehlivan Mah. PosFix Plaza Şişli"
req.Purchaser.shippingAddress.zipCode = "34782"
req.Purchaser.shippingAddress.cityCode = "34"
req.Purchaser.shippingAddress.tcCertificate = "1234567890"
req.Purchaser.shippingAddress.country = "TR"
req.Purchaser.shippingAddress.phoneNumber = "2122222222"
# Ürün Bilgileri
req.Products = []
product1 = req.Product()
product1.title = "Telefon"
product1.code = "TLF0001"
product1.price = "5000"
product1.quantity = "1"
req.Products.append(product1)
product2 = req.Product()
product2.title = "Bilgisayar"
product2.code = "BLG0001"
product2.price = "5000"
product2.quantity = "1"
req.Products.append(product2)
# Cüzdandaki kart ile ödeme yapma API çağrısının yapıldığı kısımdır. message = req.execute(req, config)
//Request
0017Wg1W2SZQdDHRD9c5FT3u+SCQ/KuT33lRmpncD2zSaU=
123456
1
false
b3091d88-6320-4446-be6c-7a1f8e6e73c7
Echo Bilgisi
2500
T
Product Code 1
Product Name 1
1
1500
Product Code 2
Product Name 2
1
1000
Ahmet
Veli
ahmet@veli.com
123.58.7.4
1976-07-11
5881231212
1234567890
Ahmet
Veli
Mevlüt Pehlivan Mah. PosFix Plaza Şişli
34782
34
12345678901
tr
123456890
Şişli
PosFix
2123886600
Ahmet
Veli
Mevlüt Pehlivan Mah. PosFix Plaza Şişli
34782
34
tr
2123886600
//Response
2500
Echo Bilgisi
yO5ACnF9FpsiV2/WBRRsDEBDRt8=
T
b3091d88-6320-4446-be6c-7a1f8e6e73c7
ABVQ03C77WPTODQN
1
2014-01-03 21:08:51
OpenCart, e-tüccarlar için ücretsiz açık kaynaklı e-ticaret platformudur. OpenCart, başarılı bir çevrimiçi mağaza kurmak için profesyonel ve güvenilir bir temel sağlar. Bu vakıf çok çeşitli kullanıcılara hitap ediyor; Kullanıcı dostu bir arayüz arayışında olan tecrübeli web geliştiricilerinden, mağaza sahiplerine işlerini ilk çevrimiçi olarak başlatmalarına kadar uzanmaktadır. OpenCart, mağazanızın özelleştirilmesi üzerinde güçlü bir duruş sağlayan kapsamlı bir miktarda özelliklere sahiptir. OpenCart'ın araçları ile online mağazanızın potansiyelini tam olarak yaşatabilirsiniz.
PrestaShop ücretsiz, açık kaynaklı bir e-ticaret çözümüdür. Yazılım, Açık Yazılım Lisansı (OSL) kapsamında yayınlanmaktadır. MySQL veritabanı yönetim sistemi desteği ile PHP programlama dilinde yazılmıştır.
WooCommerce, WordPress için açık kaynak kodlu bir e-ticaret eklentisidir. WordPress'i kullanarak küçük ve büyük ölçekli online tüccarlar için tasarlanmıştır. 27 Eylül 2011'de başlatılan eklenti, yüklenmesi ve özelleştirilmesi ve serbest baz ürünün sadeliği nedeniyle hızla popüler oldu.
WHMCS, Türkiye’de ve Dünya’da büyük – küçük birçok hosting firması tarafından kullanılan bir yazılımdır. Sağladığı avantajlar ve hızlı ilerlemesi sayesinde çok popüler olan bu yazılım, hosting şirketleri için bu işlerini yapmalarını sağlayan PHP tabanlı bir otomasyon yazılımıdır.
Eklentilerimiz iş ortağımız eticsoft tarafından gerçekleştirilmektedir. Eklentileri indirmek için tıklayınız. Eklentiler ile ilgili taleplerinizi eticsoft destek adresi üzerinden iletebilirsiniz.
# | Kart Numarası | SKT Ay/Yıl | CVC |
---|---|---|---|
1 | 4282209004348015 | 12/26 | 123 |
2 | 5571135571135575 | 12/26 | 000 |
3 | 4355084355084358 | 12/26 | 000 |
4 | 4662803300111364 | 10/25 | 000 |
5 | 5166570072166334 | 10/25 | 000 |
6 | 4022774022774026 | 12/24 | 000 |
7 | 5456165456165454 | 12/24 | 000 |
8 | 4531444531442283 | 12/24 | 000 |
9 | 5818775818772285 | 12/24 | 000 |
10 | 4508034508034509 | 12/24 | 000 |
11 | 5406675406675403 | 12/24 | 000 |
12 | 4025903160410013 | 07/26 | 123 |
13 | 5345632006230604 | 12/24 | 310 |
14 | 4282209027132016 | 12/24 | 358 |
15 | 4029400154245816 | 03/24 | 373 |
16 | 4029400184884303 | 01/26 | 378 |
17 | 9792350046201275 | 07/27 | 993 |
18 | 9792023757123604 | 01/26 | 861 |
19 | 6501700194147183 | 03/26 | 136 |
20 | 6500528865390837 | 01/26 | 686 |
21 | 9792072000017956 | 01/26 | 843 |
Hata Kodu | Hata Açıklaması |
---|---|
1 | Ödeme işleminiz bankanız tarafından onaylanmamıştır. Bankanızı arayarak detaylı bilgi alabilirsiniz. |
2 | Ödeme işleminiz bankanız tarafından reddedilmiştir. Bankanızı arayarak detaylı bilgi alabilirsiniz. |
3 | Güvenlik kodu (CVV2/CVC2) bilgisi hatalı veya ödeme işleminiz bankanız tarafından sebep belirtilmeden reddedilmiştir. Bankanızı arayarak detaylı bilgi alabilirsiniz. |
4 | Kart limitiniz yetersiz olduğundan dolayı ödeme işleminiz gerçekleştirilemedi. |
5 | Kartınızın süresi dolmuş, bu kart ile işlem gerçekleştiremezsiniz. Lütfen başka bir kart ile tekrar deneyiniz. |
6 | Kart tarih bilgisi hatalı. Lütfen bilgilerinizi kontrol edip tekrar deneyiniz. |
7 | Kart kapalı. Lütfen tekrar denemeyiniz. Bankanızı arayarak detaylı bilgi alabilirsiniz. |
8 | Kart ile işlem yapılamaz. Lütfen tekrar denemeyiniz. Bankanızı arayarak detaylı bilgi alabilirsiniz. |
9 | Kartınızın bu işlem için yetkisi yoktur. Lütfen bankanız ile irtibata geçiniz. |
10 | Ödeme işleminiz gerçekleştirilemedi. Kartınız yenilenmiş. Bankanızı arayarak detaylı bilgi alabilirsiniz. |
11 | Şifre girişi limiti aşılmış. Kart ile işlem yapılamaz. Lütfen bankanız ile irtibata geçiniz. |
12 | Güvenlik kodu (CVV2/CVC2) bilgisini yanlış girdiniz. Lütfen bilgilerinizi kontrol edip tekrar deneyiniz. |
13 | Kartınız taksitli işlemi desteklemiyor. Lütfen bilgilerinizi kontrol edip tekrar deneyiniz. |
14 | Ödeme işleminiz de kullanmış olduğunuz kart ile 1 TL nin altında ödeme gerçekleştiremezsiniz. |
15 | Kart numaranız hatalı. Lütfen bilgilerinizi kontrol edip tekrar deneyiniz. |
16 | Ödeme işleminiz gerçekleştirilemedi. Kart bankasına ulaşılamıyor. Bankanızı arayarak detaylı bilgi alabilirsiniz. |
17 | Kart banka sistemlerinde bulunamadı. Lütfen bilgilerinizi kontrol edip tekrar deneyiniz. |
18 | Şu anda ödeme yapmak istediğiniz kartın bankası hizmet verememektedir. Lütfen daha sonra tekrar deneyiniz. |
19 | Tekrar deneyiniz. Sorunun devam etmesi durumunda bankanız ile irtibata geçiniz. |
34 | Şifre hatalı. Lütfen tekrar deneyiniz. |
36 | Aktivite limit aşıldı. İşlem gerçekleştirilemiyor. |
37 | İptal limiti aşıldı. İşlem gerçekleştirilemiyor. |
38 | Ödeme işleminiz zaman aşımına uğramıştır. Bankanızdan yanıt alınamıyor. Lütfen tekrar deneyiniz. |
80 | 3D Doğrulaması başarısız. Lütfen tekrar deneyiniz. |
81 | Kart sahibi veya bankası 3D Secure sistemine kayıtlı değil. Lütfen bankanız ile irtibata geçiniz. |
82 | Kartın bankası sisteme kayıtlı değil. |
83 | Kart sahibi 3D Secure sistemine daha sonra kayıt olmayı seçmiş. Lütfen bankanız ile irtibata geçiniz. |
98 | Şu anda ödeme yapmak istediğiniz kartın bankası hizmet verememektedir. Lütfen daha sonra tekrar deneyiniz. |
99 | Ödeme işleminiz gerçekleştirilemedi. Lütfen bilgilerinizi kontrol edip tekrar deneyiniz. |
200 | Ödemeniz güvenlik kontrolünü geçemedi. |
800 | İstek boş. |
801 | Token bilgisi boş. |
802 | Token bilgisi hatalı. |
803 | Açık anahtar boş. |
804 | Hash bilgisi boş. |
805 | Entegrasyon versiyon bilgisi boş. |
806 | Versiyon desteklenmiyor. |
807 | Ödeme istek zaman bilgisi boş. |
808 | İstek zamanı header bilgisi hatalı. |
809 | İstek zamanı ile server zamanı uyuşmuyor. Lütfen tekrar deneyiniz. |
810 | Mağaza açık anahtarı yanlış. |
811 | Mağaza yayında değil. |
812 | Mağaza bu ödeme yöntemine kapalı. Lütfen konu ile ilgili PosFix operasyon ekibi ile iletişime geçiniz. |
813 | Mağaza 3D secure ödeme yöntemine kapalı. Lütfen konu ile ilgili PosFix operasyon ekibi ile iletişime geçiniz. |
814 | Sipariş numarası boş olamaz. |
815 | Sipariş numarası alanı 100 karakterden fazla olamaz. |
816 | Lütfen tutar belirtiniz |
817 | Girmiş olduğunuz tutar bilgisi hatalıdır. Lütfen tekrar deneyiniz. |
818 | ThreeD alanı boş olamaz. |
819 | ThreeD alanı hatalı. |
820 | Lütfen kart üzerindeki isim alanını giriniz. |
821 | Kart üzerindeki isim geçersizdir. Lütfen 4 ile 100 karakter arasında kartın üzerinde yazan ad bilgisini giriniz. |
822 | Lütfen kart numaranızı giriniz. |
823 | Kart numarası 15 veya 16 haneli olmalıdır. |
824 | Kart bin numarası bulunamadı. Lütfen başka bir kart ile tekrar deneyiniz. |
825 | Kart bin numarası 3D Secure işlemini desteklememektedir. Konu ile ilgili bankanızdan bilgi alabilirsiniz. |
826 | Kart numarası hatalı. Lütfen bilgilerinizi kontrol edip tekrar deneyiniz. |
827 | Kart numarası hatalı. Lütfen bilgilerinizi kontrol edip tekrar deneyiniz. |
828 | Lütfen kartınızın üzerinde bulunan son kullanım tarihi ay bilgisini giriniz. |
829 | Son kullanım tarihi ay bilgisi 2 karakter olmalıdır. |
830 | Son kullanım tarihi ay bilginiz hatalı. Lütfen bilgilerinizi kontrol edip tekrar deneyiniz. |
831 | Lütfen kartınızın üzerinde bulunan son kullanım tarihi yıl bilgisini giriniz. |
832 | Son kullanım tarihi yıl bilgisi 2 karakter olmalıdır. |
833 | Son kullanım tarihi yıl bilginiz hatalı. Lütfen bilgilerinizi kontrol edip tekrar deneyiniz. |
834 | Kartınızın son kullanım tarihi geçmiş. Lütfen başka bir kart ile tekrar deneyiniz. |
835 | Lütfen kartınızın arka yüzünde bulunan güvenlik kodunu (CVV2/CVC2) giriniz. |
836 | Güvenlik kodu (CVV2/CVC2) alanı 3 karakter olmalıdır. |
837 | Güvenlik kodu (CVV2/CVC2) alanı 4 karakter olmalıdır. |
838 | Güvenlik kodu (CVV2/CVC2) alanı 3 veya 4 haneli sayı olmalıdır. |
839 | Taksit sayısı 1 ile 9 arası sayı olmalıdır. |
840 | Kartınız taksitli işlemi desteklemiyor. İşleminizi tek çekim olarak gerçekleştirebilirsiniz. |
841 | VendorId alanı PosFix tarafından size sağlanan sayı olmalıdır. |
842 | Mod alanı boş olamaz. |
843 | Mod alanı 'P' veya 'T' olmalıdır. |
844 | Ödeme işlemi için sepetinizde en az bir ürün olması gerekmektedir. |
845 | Lütfen adınızı giriniz. |
846 | İsim alanı geçersizdir. Lütfen geçerli bir isim giriniz. |
847 | Lütfen soyadınızı giriniz. |
848 | Soyisim alanı geçersizdir. Lütfen geçerli bir soyisim giriniz. |
849 | Lütfen e-posta adresinizi giriniz. |
850 | E-posta adresi 100 karakterden büyük olamaz. |
851 | Lütfen geçerli bir e-posta adresi giriniz. |
852 | Client IP alanı boş olamaz. |
853 | Client IP alanı hatalı |
854 | ThreeDSecureCode alanı boş olamaz. |
855 | Başarılı istek dönüş adresi boş olamaz. |
856 | Başarılı istek dönüş adresi hatalı. |
857 | Başarılı istek dönüş adresi 500 karakterden büyük olamaz. |
858 | Hatalı istek dönüş adresi boş olamaz. |
859 | Hatalı istek dönüş adresi hatalı. |
860 | Hatalı istek dönüş adresi 500 karakterden büyük olamaz. |
877 | Lütfen kart rumuzunuzu giriniz. |
878 | Lütfen geçerli bir kart rumuzu giriniz. |
880 | Sipariş numarası daha önce kullanılmış. Lütfen tekrardan istekte bulununuz. |
881 | Devam eden bir işleminiz bulunduğundan dolayı bu istek reddedilmiştir. |
882 | Göndermiş olduğunuz token doğru değil. |
883 | Mağaza komisyon oranlarınız belirlenmemiş. Lütfen konu ile ilgili PosFix operasyon ekibi ile iletişime geçiniz. |
884 | Kart bilgisi bulunamadı. Lütfen tekrar deneyiniz. |
885 | Mağaza durumu test modu için uygun değil. Lütfen konu ile ilgili PosFix operasyon ekibi ile iletişime geçiniz. |
886 | Mağaza kayıtlı site adresi ile istekte bulunulan adres aynı değil. Lütfen konu ile ilgili PosFix operasyon ekibi ile iletişime geçiniz. |
887 | 3D Doğrulama isteği sonrasında yapmış olduğunuz api isteğine ait işlem bulunamadı. |
888 | Göndermiş olduğunuz mod bilgisi 3D doğrulama isteğinde göndermiş olduğunuz bilgi ile aynı olmalıdır. |
889 | Göndermiş olduğunuz tutar bilgisi 3D doğrulama isteğinde göndermiş olduğunuz bilgi ile aynı olmalıdır. |
890 | Göndermiş olduğunuz ödeme bilgileri ile daha önceden işlem yapılmış. |
891 | Göndermiş olduğunuz ThreeDSecureCode bilgisi hatalı. |
892 | Bu mağaza üzerinden sadece 3D secure yöntemi kullanılarak ödeme yapılabilir. |
893 | Bu kart ile sadece 3D secure yöntemi kullanılarak ödeme yapılabilir. |
894 | Mağaza taksitli alışverişi desteklememektedir. İşleminizi tek çekim olarak gerçekleştirebilirsiniz. |
896 | UserId alanı boş olamaz. |
897 | UserId alanı hatalı. |
907 | Seçmiş olduğunuz taksit desteklenmemektedir |
953 | Lütfen 6 haneli bin numarasını giriniz. |
954 | Girmiş olduğunuz bin numarası hatalı. |
964 | Ödeme işleminizde kullanmış olduğunuz kart güvenlik sebebiyle engellenmiştir. |
965 | Purchaser alanı boş olamaz. |
968 | Mağazanın tek tıkla ödeme özelliği kapalıdır. |
970 | Kullanıcının kartı bulunamadı. |
971 | Kullanıcının kartı bloklanmıştır. Lütfen mağazanız ile iletişime geçiniz. |
973 | Kaydedilmek istenen banka/kredi kartı mağazada başka bir üyeliğe tanımlıdır. Lütfen mağaza ile iletişime geçiniz. |
975 | Kullanıcı bilgisi boş. |
988 | orderId bilgisi geçersizdir. |
989 | Kaydedilmek istenen kart hesabınıza zaten tanımlıdır. |
3085 | İade miktarı zorunlu alandır. |
210 | İade edilecek ödeme bulunamadı. |
3086 | Geçerli iade miktarı giriniz. |
3193 | refundHash parametresi geçersizdir. |
1000 | İşleminiz gerçekleştirilirken beklenmedik bir hata oluştu. Lütfen daha sonra tekrar deneyiniz. |
Hata Kodu | Hata Mesajı ve Öneri |
---|---|
1 |
Ödeme işleminiz bankanız tarafından onaylanmamıştır. Bankanızı arayarak detaylı bilgi alabilirsiniz. Bu hata banka tarafından ödeme alımına izin verilmeyen veya kullanılan kart ile ilgili özel bir durum oluştuğunda alınmaktadır. Banka hata detayını açıklamamakta ve kart sahibinin bankası ile iletişime geçmesini tavsiye etmektedir. |
2 |
Ödeme işleminiz bankanız tarafından reddedilmiştir. Bankanızı arayarak detaylı bilgi alabilirsiniz. Ödeme banka tarafından reddedilmiştir, kart blokeli veya sınırlandırılmış olabilir. Bu sınırlamalar günde 1 işlem veya en fazla 10 işlem şeklinde olabilir. Banka hata detayını açıklamamakta ve kart sahibinin bankası ile iletişime geçmesini tavsiye etmektedir. |
3 |
Güvenlik kodu (CVV2/CVC2) bilgisi hatalı veya ödeme işleminiz bankanız tarafından sebep belirtilmeden reddedilmiştir. Bankanızı arayarak detaylı bilgi alabilirsiniz. Güvenlik Kodu hatalı veya kart sahibi banka tarafından işlem reddedilmiş ve sebep belirtilmemiştir. Karşı banka sistemleri kapalı veya cevap veremiyor olabilir. Müşterinizden kartını kontrol ederek tekrar denemesini veya yeni bir kart ile işlemine devam etmesini istemeniz gerekmektedir. |
8 |
Güvenlik kodu (CVV2/CVC2) bilgisi hatalı veya ödeme işleminiz bankanız tarafından sebep belirtilmeden reddedilmiştir. Bankanızı arayarak detaylı bilgi alabilirsiniz. Güvenlik Kodu hatalı veya kart sahibi banka tarafından işlem reddedilmiş ve sebep belirtilmemiştir. Karşı banka sistemleri kapalı veya cevap veremiyor olabilir. Müşterinizden kartını kontrol ederek tekrar denemesini veya yeni bir kart ile işlemine devam etmesini istemeniz gerekmektedir. |
9 |
Kartınızın bu işlem için yetkisi yoktur. Lütfen bankanız ile irtibata geçiniz. Müşterinin kullanmak istediği kart online işleme kapalı olabilir veya 3D secure işlemlere kapalı olabilir. Detaylı bilgi için müşterinizin bankasıyla iletişime geçmesini rica ederiz. |
16 |
Ödeme işleminiz gerçekleştirilemedi. Kart bankasına ulaşılamıyor. Bankanızı arayarak detaylı bilgi alabilirsiniz. Banka sistemlerinden kaynaklanan sorunlar nedeniyle ödeme alınamamıştır. Bu gibi durumlarda PosFix banka ile iletişime geçip sorunun giderilmesi konusunda bankayı bilgilendirmektedir. |
18 |
Şu anda ödeme yapmak istediğiniz kartın bankası hizmet verememektedir. Lütfen daha sonra tekrar deneyiniz. Banka sistemlerinden kaynaklanan sorunlar nedeniyle ödeme alınamamıştır. Belli bir süre sonra kartınız ile ödeme yapabilirsiniz. Bu gibi durumlarda PosFix banka ile iletişime geçip sorunun giderilmesi konusunda bankayı bilgilendirmektedir. |
38 |
Ödeme işleminiz zaman aşımına uğramıştır. Bankanızdan yanıt alınamıyor. Lütfen tekrar deneyiniz. Banka sistemlerinden kaynaklı bir hatadan dolayı ödeme zaman aşımına uğramıştır ve tahsilat yapılamamıştır ve bu mesaj müşteriye iletilmiştir. |
80 |
3D Doğrulaması başarısız. Lütfen tekrar deneyiniz. Bu hata aşağıda bulunan durumlardan dolayı yaşanmış olabilir;
Yukardaki sebeplerin dışında başka nedenlerle de banka ödeme isteğini reddedebilmektedir. Detaylı bilgi için kart sahibinin bankasını aramasını rica ederiz. |
81 |
Kart sahibi veya bankası 3D Secure sistemine kayıtlı değil. Lütfen bankanız ile irtibata geçiniz. Kart sahibi bankasıyla iletişime geçip (telefon üzerinden veya internet bankacılığından) kartının 3D secure ile ödeme özelliğini açtırması gerekmektedir. |
82 |
Kartın bankası sisteme kayıtlı değil. Kartın bağlı olduğu banka 3D secure sistemine dahil olmadığı için karttan ödeme alınamamıştır. Müşterinizin başka bir kart ile bir ödeme yapmasını rica ederiz. |
83 |
Kart sahibi 3D Secure sistemine daha sonra kayıt olmayı seçmiş. Lütfen bankanız ile irtibata geçiniz. Güvenlik gereği ilk kez 3D secure kullanan kartların ödemesi PosFix tarafından reddedilmektedir. Müşterinizin kartıyla başka bir sanal postan ilk ödemesini yapmasını veya başka bir kart kullanmasını rica ederiz. |
98 |
Şu anda ödeme yapmak istediğiniz kartın bankası hizmet verememektedir. Lütfen daha sonra tekrar deneyiniz. Banka sistemlerinden kaynaklanan sorunlar nedeniyle ödeme alınamamıştır. Belli bir süre sonra kartınız ile ödeme yapabilirsiniz. Bu gibi durumlarda PosFix banka ile iletişime geçip sorunun giderilmesi konusunda bankayı bilgilendirmektedir. |
99 |
Ödeme işleminiz gerçekleştirilemedi. Lütfen bilgilerinizi kontrol edip tekrar deneyiniz. Banka sistemlerinden tanımlanamayan hata kodu gönderildiği zaman bu hata alınmaktadır. Bu gibi durumlarda PosFix banka ile iletişime geçip sorunun giderilmesi konusunda bankayı bilgilendirmektedir. |
802 |
Mağaza token bilgisi hatalı. Token değeri publicKey:hash şeklinde oluşmaktadır. Yolladığınız token'da ':' karakteri bulunmadığı için bu hatayı almaktasınız. |
810 |
Mağaza açık anahtarı yanlış. Ödeme isteğinde bulunurken yolladığınız token parametresini oluştururken kullanılan publicKey değerinin doğru olduğundan ve bu değeri yazılımınıza kopyalarken başında ve sonunda boşluk olmamasına ve eksiksiz olarak kopyalamış olduğunuzdan emin olunuz. |
817 |
Girmiş olduğunuz tutar bilgisi hatalıdır. Lütfen tekrar deneyiniz. Ödeme isteğinde yolladığınız amount parametresi beklenen formatın dışında olduğu için bu hatayı almaktasınız. Ödeme isteklerinde amount parametresi kuruş değerinde yollanmalıdır. Kesinlikle nokta ve virgül kullanılmamalıdır. amount değeri 1 TL'lik ödeme için 100 olarak, 12.59 TL için de 1259 olarak yollanmalıdır. Ayrıca ödeme isteklerinde amount parametresi en az 1 (0.01 TL) en fazla 10000000 (100000 TL) olarak yollamanızı rica ederiz. |
824 |
Kart bin numarası PosFix sisteminde bulunamadı. Lütfen başka bir kart ile tekrar deneyiniz. Kullanıcının ödemede kullanmak istediği kredi/banka kartının ilk altı hanesine 'bin numarası' denir. PosFix'da yurtiçindeki bankaların tüm kredi ve banka kartları geçmektedir. Kartın yurtiçindeki bir bankaya ait olduğuna eminseniz sorunu anlayabilmemiz için ödeme yapılmak istenen kartın bin numarasını yollamanızı rica ederiz. |
840 |
Kartınız taksitli işlemi desteklemiyor. Lütfen bilgilerinizi kontrol edip tekrar deneyiniz. Kullanıcı taksit desteklemeyen bir kart ile taksitli ödeme yapmak istediği zaman bu hata verilmektedir. Eğer kullanıcı kartının taksit desteklediğini iletirse, kullanıcının kartının ilk altı hanesini (bin numarasını) bize iletmenizi rica ederiz. |
844 |
En az bir ürün bilgisinin gönderilmesi zorunludur. Ödeme isteğinde 'products' alan bilgisi boş gönderildiği için ya da bu alanda bir 'product' tanımlı olmadığı için bu hatayı almaktasınız. Ödeme isteğinizin teknik entegrasyon dokümanındaki örneklerdeki gibi olmasını rica ederiz. |
880 |
Mağaza sipariş numarası daha önce kullanılmış. Lütfen tekrardan istekte bulununuz. Daha önceki ödeme istekleri başarısız olsa da, ödeme isteklerinde önceki ödeme isteklerinde kullanılmış orderId değerini yollamamanız gerekmektedir. PosFix sisteminde validasyon kontrolünü geçmiş olan tüm başarılı ve başarısız ödemelere ait mağaza bazlı tekil sipariş numarası kullanılmaktadır. |
882 |
Göndermiş olduğunuz token doğru değil. Ödeme güvenliği için ödeme isteğinizde yolladığınız 'token' değerini PosFix kendi tarafında tekrar oluşturarak yolladığınız değer ile karşılaştırır.Yolladığınız değer ile PosFix'de oluşan değer farklı olduğu zaman PosFix bu hatayı dönmektedir. Bu hata:
|
886 |
Mağaza kayıtlı site adresi ile istekte bulunulan adres aynı değil. Lütfen konu ile ilgili PosFix operasyon ekibi ile iletişime geçiniz. Güvenlik politikası gereği PosFix'e yapılan ödeme istekleri mağazanın PosFix'e kayıt olurken bildirdiği domainden gelmek zorundadır. Eğer mağazanızın web sitesi değişmiş ise yeni web site adresinizi iletmenizi rica ederiz. |
887 |
3D Doğrulama isteği sonrasında yapmış olduğunuz api isteğine ait işlem bulunamadı. API servis isteğinde yolladığınız publicKey, orderId ve mode parametre değerlerinin, ilk adımda yolladığınız değerler ile aynı olduğundan emin olmanızı rica ederiz. |
893 |
Bu kart ile sadece 3D secure yöntemi kullanılarak ödeme yapılabilir. Bankanın sadece 3D secure ödemeye izin verdiği kart için 3D secure kullanılmadan ödeme yapılmak istendiği için bu hata alınmıştır. Ödeme yapılmak istenen kart için 3D secure zorunluluğunu öğrenmek için bin numarası servisini entegre etmenizi tavsiye ederiz. |
965 |
Purchaser alanı boş olamaz. Ödeme isteğinizde purchaser alanı boş olduğu için bu hatayı almaktasınız. Ödeme isteğinizde purchaser alanını ve zorunlu alanlarını yollamanızı rica ederiz. Detaylı bilgiyi teknik entegrasyon dokümanımızda bulabilirsiniz. |
1000 |
Beklenmedik bir hata oluştu. Lütfen tekrar deneyiniz. Beklenmedik bir hata oluştu. Lütfen tekrar deneyiniz. Not: Bu hata mesajını alıyorsanız lütfen destek sayfası üzerinden bildirimde bulununuz. |
Eğer sorununuz devam ediyorsa, lütfen destek sayfasından bize yazınız.
PosFix'de IP veya DNS kontrolü yapılmadığı için yeni IP ve DNS adreslerinizi iletmenize gerek yoktur.
PCI-DSS güvenlik standartları gereği, posfix.com.tr’de açılan sayfalarda 15 dakika içinde işlem yapılmazsa daha sonra sayfadan gelen isteklerde bu hata verilir. Sayfayı yenileyerek tekrardan istekte bulunabilirsiniz.
Ödeme isteklerinde “amount” parametresi 2 haneli kuruş değeri ile birlikte nokta veya virgül olmadan yollanmalıdır. “amount” değerini 1 TL'lik ödeme için 100 olarak, 1000 TL için de 100000 olarak yollanmalıdır. Ayrıca ödeme isteklerinde amount parametresi en az 1 en fazla 100000 olarak yollamanızı rica ederiz.
Test ödemeleri için “mode” parametresini “T” olarak yollamanızı rica ederiz. Test kartlarına buradan erişebilirsiniz.
Ödeme güvenliğinin sağlanması için web sitenizde SSL (SHA2 algoritması ile) kullanımı zorunludur.
PosFix tarafından yollanan entegrasyon kütüphaneleri örnek amaçlı yollanmıştır, ödeme güvenliğini bozmayacak şekilde kendi yazılımınızı geliştirebilirsiniz.
Banka/Debit kartları için 3D zorunluluğu kartın bankası tarafından belirlendiği için bu kartlar ile yapılacak ödemelerin 3D secure kullanılarak gerçekleştirilmesi gerekmektedir.
Kullanmış olduğunuz PosFix entegrasyon kütüphanesi test edilmiş olup, sizlerde dahil olmak üzere bütün mağazalarımız tarafından kullanılmaktadır. Demo kodları ile yapılan isteklerde hata yaşıyor iseniz, yapmış olduğunuz değişiklikleri geri alarak, çalışırlılığını tekrardan test etmenizi öneririz. Eğer hata almaya devam ediyor iseniz kodları çalıştırdığınız uygulama sunucu ayarlarını kontrol etmenizi öneririz.
3D Secure isteği işlendiğinde alınan XML-JSON format hatalarından dolayı veya izinsiz karakter kullanımından dolayı bu sayfa gösterilmiştir. Ödeme isteğinde post edilen formda bir format bozukluğu (yanlış yerde '>' karakterinin kullanımı gibi) olduğu için gelen istek posfix.com.tr uygulaması tarafından cevaplanmamış olabilir ve güvenlik tedbiri olarak geri sayfa yönlendirmesi yapılmamış olabilir. Göndermiş olduğunuz istekte failureUrl bilgisi boş veya hatalı ise yine bu hatayı alabilirsiniz. Göndermiş olduğunuz url bilgisi http:// veya https:// ile başlamalıdır. Örn; “https://www.magazam.com/3Dodeme/basarisiz-sonuc” Yapmış olduğunuz 3D Secure isteğinde, teknik entegrasyon dokümanınındaki zorunlu alanların, verilen örneklerde olduğu gibi yollanmasını rica ederiz. Ayrıca güvenlik kontrollerine takılmamak adına göndermiş olduğunuz form verilerinin UTF-8 ile encode edilmiş olmasına dikkat ediniz.
3D secure ekranında işlem yapıldıktan sonra browser 3D secure ekranından mağazanıza yönlenir. Ödeme başarılı ise browser successUrl (başarılı cevap adresi) adresine yönlenirken, başarısız ödemede ise browser failureUrl (başarısız cevap adresi) adresine yönlenecektir. Eğer successUrl veya failureUrl adresleriniz geçersizse ödeme boş sayfada kalacaktır.
Http 400 beklenmedik formatta yollanan ödemelerde alınan bir hatadır. Ödeme isteklerinizin teknik entegrasyon dokümanındaki örnek istekler ile aynı formatta olmasını rica ederiz.
XML formatı hatalı olduğu için server gelen isteği işlememiştir. Örnek olarak gönderilen istek verisinin başındaki satırı yerine kullandığınız zaman ödeme istekleriniz reddedilecektir. Doğru format için teknik entegrasyon dokümanındaki XML örneklerine göz atmanızı rica ederiz
Ödeme isteğinize PosFix cevap dönmüştür ve websitenize dönüş yapmıştır. Ama PosFix’in yolladığı parametreler websitenize ulaşmamıştır. Bu durumun sebepleri: Eğer websitenizin dönüş adresi “https” ile başlamıyor veya SSL kullanmıyorsanız browserınız PosFix’den gelen değerleri websitenize iletmemesi Websitenizin network/sistem ayarlarından dolayı PosFix’den gelen parametreler websitenize ulaşmaması olabilir. Bu ihtimaller doğrultusunda kontrollerinizi yapmanızı rica ederiz.
Ödeme istekleri mutlaka SSL üzerinde yapılmalıdır. LIVE'da ödeme isteğinde yollanan successUrl ve failureUrl adresleri mutlaka 'https://' ile başlayan geçerli adresler kullanmanızı rica ederiz.
Token hesaplaması, Ödeme Servisleri sayfasında Ödeme Modüllerinde belirtilen parametrelerin yan yana eklenerek önce Sha1 algoritması ile şifrelenip daha sonrasında Base64 ile encode edilmesi ile gerçekleştirilmektedir. Burada dikkat edilmesi gereken en önemli nokta Base64 kodlaması yapılırken UTF-8 kullanılması gerekliliğidir. Örnek token hesaplama fonksiyonlarını Ödeme Servisleri sayfasında bulabilirsiniz.
Her konuda bizimle iletişime geçebilir, istek, öneri, destek ve görüşlerinizi bizimle paylaşabilirsiniz.
Bizimle iletişime geçmek için [email protected] adresine mail atabilirsiniz.