شروع
فاکتور
دیاگرام فاکتور
موجودی
نرخ
تبدیل
انتقال
در ابتدا از طریق پنل کاربری بخش API کلید های
api_key
و secret_key
را تولید کنید .
همچنین در بخش API
میتوانید دسترسی به سرویس API را با IP محدود بکنید و فقط از IP های خود به سرویس متصل بشوید .
اگر نمیدانید IP سرور شما چیست میتوانید در سرور خود دستور زیر را اجرا کنید .
curl 'https://api.zipay.io/api/'
ابتدا در پنل
api_key
و secret_key
را تولید کنید .
و متدهایی که نیاز دارید را فعال کنید .
هرگز کلید های API را با کسی در اشتراک نگذارید
کلید های شما باید مشابه زیر باشند
API Key: 4f3c12fa0a1d1ac8b026298b980f16b2 SECRET KEY: f7d36fd7f60ab0bac12051e0c3240508585dba741e126669bfbc06e002b9df6ac4e457b6به ازای هر درخواست شما باید دو تا پارامتر را در header درخواست ارسال بکنید یکی از آنها
api_key
و دیگری
api_sign
هست .
api_sign
را باید با استفاده از الگوریتم
hmac_hash sha256
برروی پارامترهای ارسالی با استفاده از
secret_key
بسازید .
par1=value1
و par2=value2
را به سرویس API ارسال کنیدapi_sign
با استفاده از secret_key
تولید کنید.
$post_encode = http_build_query([ 'par1'=>'value1', 'par2'=>'value2' ]); $s = hash_hmac('sha256', $post_encode, 'f7d36fd7f60ab0bac12051e0c3240508585dba741e126669bfbc06e002b9df6ac4e457b6', true); echo base64_encode($s); //g1seBV5gkv7n4EjIdzMjl+ntJ256kvIe2kulu2SfTPk=
var crypto = require('crypto'); var hash = crypto.createHmac('SHA256', "f7d36fd7f60ab0bac12051e0c3240508585dba741e126669bfbc06e002b9df6ac4e457b6").update("par1=value1&par2=value2").digest('base64');
import hashlib import hmac import base64 dataToBeSigned= bytes("par1=value1&par2=value2").encode('utf-8') portalKey = bytes("f7d36fd7f60ab0bac12051e0c3240508585dba741e126669bfbc06e002b9df6ac4e457b6").encode('utf-8') signature = base64.b64encode(hmac.new(portalKey, dataToBeSigned, digestmod=hashlib.sha256).digest())
require 'openssl' require "base64" hash = OpenSSL::HMAC.digest('sha256', "f7d36fd7f60ab0bac12051e0c3240508585dba741e126669bfbc06e002b9df6ac4e457b6", "par1=value1&par2=value2") token = Base64.encode64(hash) token.delete("\n")
import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; public class ApiSecurityExample { public static void main(String[] args) { String portalKey = "f7d36fd7f60ab0bac12051e0c3240508585dba741e126669bfbc06e002b9df6ac4e457b6"; String dataToBeSigned= "par1=value1&par2=value2"; Mac sha256_HMAC = Mac.getInstance("HmacSHA256"); SecretKeySpec secret_key = new SecretKeySpec(portalKey.getBytes(), "HmacSHA256"); sha256_HMAC.init(secret_key); String hash = Base64.encodeBase64String(sha256_HMAC.doFinal(dataToBeSigned.getBytes())); } }
در این مرحله شما بایدapi_key
و api_sign
و پارامترهای
par1=value1&par2=value2
را داشته باشید
.
پارامتر ها را بصورت
POST
(و نه json )
به سرویس API
ارسال کنید ! و همچنین
api_key
و api_sign
در header قرار دهید .
curl -H "api_key:4f3c12fa0a1d1ac8b026298b980f16b2" -H "api_sign:g1seBV5gkv7n4EjIdzMjl+ntJ256kvIe2kulu2SfTPk=" --data "par1=value1&par2=value2" https://api.zipay.io/api/example
$_headers = [ 'api_key:4f3c12fa0a1d1ac8b026298b980f16b2', 'api_sign:g1seBV5gkv7n4EjIdzMjl+ntJ256kvIe2kulu2SfTPk=', ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, $_headers); curl_setopt($ch, CURLOPT_URL, 'https://api.zipay.io/api/example'); curl_setopt($ch, CURLOPT_POSTFIELDS, 'par1=value1&par2=value2'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $result = curl_exec($ch); curl_close($ch); echo $result;
همه پاسخ ها با فرمت JSON هستند .
نمونه پاسخ موفق:
{ ... "success": true, "status": 200 }مقدار "success" زمانیکه true باشد به این معنی هست که همه چیز درست هست و همچنین مقدار status بیانگر HTTP status code است .
{ "errors": { "auth": "INVALID_API_SIGN" }, "success": false, "status": 403 }
POST https://api.zipay.io/api/random
نام پارامتر | نوع | اجباری | توضیحات |
min | integer | بله | یک عدد وارد کنید |
max | integer | بله | یک عدد دیگر بزرگتر از min وارد کنید |
{ "trackid": "08B171-F259CB-3E300C-9ABE83", "result": 15, "success": true, "status": 200 }