Checkavailability
Ödeme sayfasına gelir gelmez kullanıcının Hepsipay hesabının olup olmadığını telefon numarası veya email üzerinden kontrol edilmesi gerekir. Kullanıcının Hepsipay hesabı olması durumunda kullanıcı doğrulanır ve beraberinde HepsipayFrameInit servisi çağrılır.
Endpoint |
|
Method Type |
|
Request Example |
|
InputName | Type | Required | Description | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Amount | int | M | Tutar bilgisi | ||||||||||||||||||||||||||||
AccountKey | string | M | İşlem yapılan gsm no ve email bilgisidir | ||||||||||||||||||||||||||||
MerchantCallBackUrl | string | M | İşlem sonucunun üye işyerine iletilmesi için gerekli link bilgisi. | ||||||||||||||||||||||||||||
BasketItems | List | M | Sepet içerisindeki ürün bilgileri(Sepet içerisindeki toplam değer price amount a eşit olmalıdır).
| ||||||||||||||||||||||||||||
IsGuestUser | bool | O | Kullanıcı misafir(üye işyeri sistemine giriş yapmamış) ise bu alan true gönderilmelidir | ||||||||||||||||||||||||||||
Force3ds | bool | O | Üye işyeri ödeme adımının 3d ile gerçekleşmesini istiyorsa bu alan true gönderilmelidir. | ||||||||||||||||||||||||||||
AllowedInstallments | List | O | Üye işyerinin izin vermiş olduğu taksit sayıları. | ||||||||||||||||||||||||||||
MerchantOrderNumber | string | O | Üye işyerine ait sipariş numarası. |
Response Example | ✅ Example Success Response:
⚠️ Example Fail Response:
|
OutputName | Type | Required | Description |
---|---|---|---|
Success | boolean | M | Default alanlarımızdandır.İşlemin başarılı gerçekleşip gerçekleşmediği bilgisidir. True ise başarılı gerçekleşmiş ve kullanıcının Hepsipay müşterisi ve saklı kartı olduğunu belirtir. False ise o halde Hepsipay müşterisi olmadığını belirtir. |
IsAccountAlreadyLinked | boolean | M | Müşterinin o merchantla linklenip linklenmediği bilgisidir. Eğer Guest user olarak gelen bir müşteri ise hiçbir zaman müşteri o merchantla linklenmez. Eğer kullanıcı, o merchantta registered olarak en az bir kere gelmiş ise tekrar tekrar OTP atılmayacağı (90 güne kadar) belirtilmesi için bu değeri merchanta bilgi amaçlı iletiyoruz. |
MessageCode | string | M | Default alanlarımızdandır.Request’in sonucu success:true ise o halde 000 değeri gelecektir. Aksi taktirde Hepsipay sistemi tarafından uygun hata kodları dönecektir. İşlemin başarısız olduğunda hangi hata kodu ile sonlandığını belirtir. |
Message | string | M | Default alanlarımızdandır.Hepsipay tarafından hata koduna bağlı olarak hata mesajı olarak dönülmektedir. İşlemin gerçekte hangi durumdan dolayı hata verdiği gösterilir. Örnek değer “Cüzdan Bulunamadı.” |
UserMessageTitle | string | O | Default alanlarımızdandır.User’a verilecek mesajın başlık bilgisidir.Genelde null değeri dönecektir. |
UserMessage | string | M | Default alanlarımızdandır.User’a verilmesi istenen hata mesajıdır. Örneğin Message alanında “Cüzdan Bulunmadı” hatası geldiğinde user için göserilebilecek bu değer “İşleminiz şu anda gerçekleştirilemiyor. Lütfen daha sonra tekrar deneyiniz.” Şeklinde gelecektir. |
Örnek Kodlar
try {
$header = ["Content-Type: application/json"];
$header = ["merchant-no: XXXXX"]; // Hepsipay tarafından iletilir.
$header = ["terminal-no: YYYYY"]; // Hepsipay tarafından iletilir.
$header = ["signature-no: e74ef7c4994cd3f5ff03f89a310cda8bcf29af12a39ebf1e7dbf27c99efe3784eb5eaaf4f535d666eb513620c8b66ec483a2dfa281c85bc2bb8ff18518f5cdf2"];
$data_string = '{"Amount":1000,"AccountKey":"905998868296","MerchantCallBackUrl":"http:\/\/hepsipaysdk.entegrasyon.alttantire.local\/examples\/payment_result.php","BasketItems":[{"Product":"\u00c7ikolata","Price":500,"SubMerchantMemberId":null,"SubMerchantMemberPrice":null,"CategoryId":"3","ExternalId":"10"},{"Product":"\u00c7ikolata","Price":500,"SubMerchantMemberId":null,"SubMerchantMemberPrice":null,"CategoryId":"3","ExternalId":"10"}],"AllowedInstallments":[1,2,3],"FrameType":1,"MerchantOrderNumber":"1234-56797","BankOrderId":"ABC-123-4567","ExternalId":"EXT-ID-123-4567"}';
$ch = @curl_init("https://merchantpfpayment-gateway-qa.hepsipay.com/v2/hepsipayframe/checkavailability");
@curl_setopt($ch, CURLOPT_POST, true);
@curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
@curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
@curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
@curl_setopt($ch, CURLOPT_TIMEOUT, 10); //timeout in seconds
$result = curl_exec($ch);
if (@curl_errno($ch)) {
$error_msg = curl_error($ch);
@curl_close($ch);
throw new Exception($error_msg);
} else {
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($result, 0, $header_size);
$body = substr($result, $header_size);
if ($http_code === 401) {
throw new Exception("Yetkisiz Erişim. " . $http_code);
}
$data = json_decode($result);
@curl_close($ch);
return $data;
}
} catch (Exception $e) {
throw new Exception($e->getMessage());
}