الحصول على كتالوج المنتجات
curl --request GET \
--url https://api.oneclickdz.com/v3/gift-cards/catalog \
--header 'X-Access-Token: <api-key>'import requests
url = "https://api.oneclickdz.com/v3/gift-cards/catalog"
headers = {"X-Access-Token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Access-Token': '<api-key>'}};
fetch('https://api.oneclickdz.com/v3/gift-cards/catalog', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.oneclickdz.com/v3/gift-cards/catalog",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Access-Token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.oneclickdz.com/v3/gift-cards/catalog"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Access-Token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.oneclickdz.com/v3/gift-cards/catalog")
.header("X-Access-Token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.oneclickdz.com/v3/gift-cards/catalog")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Access-Token"] = '<api-key>'
response = http.request(request)
puts response.read_bodyبطاقات الهدايا
الحصول على كتالوج المنتجات
احصل على جميع بطاقات الهدايا والمنتجات الرقمية المتاحة مجمَّعة حسب الفئة
GET
/
v3
/
gift-cards
/
catalog
الحصول على كتالوج المنتجات
curl --request GET \
--url https://api.oneclickdz.com/v3/gift-cards/catalog \
--header 'X-Access-Token: <api-key>'import requests
url = "https://api.oneclickdz.com/v3/gift-cards/catalog"
headers = {"X-Access-Token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Access-Token': '<api-key>'}};
fetch('https://api.oneclickdz.com/v3/gift-cards/catalog', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.oneclickdz.com/v3/gift-cards/catalog",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Access-Token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.oneclickdz.com/v3/gift-cards/catalog"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Access-Token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.oneclickdz.com/v3/gift-cards/catalog")
.header("X-Access-Token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.oneclickdz.com/v3/gift-cards/catalog")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Access-Token"] = '<api-key>'
response = http.request(request)
puts response.read_bodyنظرة عامة
يعيد الكتالوج الكامل لبطاقات الهدايا والمنتجات الرقمية المنظَّمة حسب الفئات (الألعاب، البث، إلخ).احتفظ بهذه البيانات في cache لمدة 24 ساعة على الأقل. يتغير الكتالوج نادراً.
الاستجابة
boolean
مطلوب
حالة الطلب
integer
إجمالي عدد الفئات في الكتالوج
integer
إجمالي عدد المنتجات عبر جميع الفئات
object
مطلوب
إظهار الخصائص
إظهار الخصائص
array
مصفوفة كائنات الفئات مع المنتجات
أمثلة
curl https://api.oneclickdz.com/v3/gift-cards/catalog \
-H "X-Access-Token: YOUR_API_KEY"
const response = await fetch(
"https://api.oneclickdz.com/v3/gift-cards/catalog",
{
headers: { "X-Access-Token": "YOUR_API_KEY" },
}
);
const { data } = await response.json();
// Filter enabled products
const enabledProducts = data.categories.flatMap((cat) =>
cat.products.filter((p) => p.enabled)
);
response = requests.get(
'https://api.oneclickdz.com/v3/gift-cards/catalog',
headers={'X-Access-Token': 'YOUR_API_KEY'}
)
catalog = response.json()['data']
# Filter by category
gaming = next(c for c in catalog['categories'] if c['name'] == 'Gaming Cards')
<?php
$ch = curl_init('https://api.oneclickdz.com/v3/gift-cards/catalog');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-Access-Token: YOUR_API_KEY']);
$response = json_decode(curl_exec($ch), true);
$categories = $response['data']['categories'];
?>
مثال الاستجابة
{
"success": true,
"totalCategories": 14,
"totalProducts": 62,
"data": {
"categories": [
{
"title": "PSN",
"products": [
{
"id": "6126393c6f57860f925a1983",
"title": "PSN Germany",
"enabled": true,
"region": "germany"
},
{
"id": "612619816f57860f9259eee3",
"title": "PSN UK",
"enabled": true,
"region": "united-kingdom"
}
]
}
]
},
"meta": {
"timestamp": "2025-10-29T00:36:52.615Z"
}
}
بناء واجهة عرض المنتجات
// Example: Building a category-based UI
function renderCatalog(catalog) {
return catalog.categories.map((category) => ({
categoryName: category.name,
products: category.products
.filter((p) => p.enabled)
.map((p) => ({
id: p.id,
name: p.title,
imageUrl: `/images/products/${p.id}.png`,
})),
}));
}
استراتيجية التخزين المؤقت
// Cache for 24 hours
const cache = {
data: null,
timestamp: 0,
ttl: 24 * 60 * 60 * 1000, // 24 hours
};
async function getCatalog() {
const now = Date.now();
if (cache.data && now - cache.timestamp < cache.ttl) {
return cache.data;
}
const response = await fetch(
"https://api.oneclickdz.com/v3/gift-cards/catalog",
{
headers: { "X-Access-Token": process.env.API_KEY },
}
);
cache.data = await response.json();
cache.timestamp = now;
return cache.data;
}
from datetime import datetime, timedelta
import requests
class CatalogCache:
def __init__(self):
self.data = None
self.timestamp = None
self.ttl = timedelta(minutes=10)
def get(self):
if self.data and datetime.now() - self.timestamp < self.ttl:
return self.data
response = requests.get(
'https://api.oneclickdz.com/v3/gift-cards/catalog',
headers={'X-Access-Token': 'YOUR_API_KEY'}
)
self.data = response.json()
self.timestamp = datetime.now()
return self.data
catalog_cache = CatalogCache()
أفضل الممارسات
التخزين المؤقت للكتالوج
خزّن لمدة 10 دقائق أو أكثر لتقليل استدعاءات API
تصفية المُفعَّل
أظهر فقط المنتجات حيث
enabled: trueالتحقق من المنطقة
فلترة حسب المنطقة إذا كنت تستهدف أسواقاً محددة
التنظيم حسب الفئة
استخدم الفئات لتجربة مستخدم أفضل
الخطوات التالية
بعد الحصول على الكتالوج:1
عرض المنتجات
أظهر المنتجات للمستخدمين منظمةً حسب الفئة
2
التحقق من تفاصيل المنتج
استخدم
/checkProduct/:id للحصول على الأسعار والمخزون3
تقديم الطلب
استخدم
/placeOrder لشراء المنتج المحددذات صلة
التحقق من المنتج
الحصول على الأسعار والمخزون
تقديم طلب
شراء المنتج
⌘I

