مستندات وبسرویس

(v1.0)

نیاز به راهنمایی دارید؟

تیم پشتیبانی ما آماده کمک به شماست.

تماس با پشتیبانی

کدهای نمونه API

در این بخش، نمونه کدهایی برای استفاده از API گیفت سیتی در زبان‌های برنامه‌نویسی مختلف ارائه شده است. این مثال‌ها به شما کمک می‌کنند تا به سرعت API را در پروژه خود پیاده‌سازی کنید.

استفاده از API در JavaScript

نصب

ابتدا باید کتابخانه axios را نصب کنید:

نصب کتابخانه
// نصب با npm
npm install axios

// یا با yarn
yarn add axios

تنظیم کلاس API

یک کلاس برای ارتباط با API گیفت سیتی ایجاد می‌کنیم:

کلاس Gift30tApi
// تنظیم کلاس برای استفاده از API گیفت سیتی
import axios from 'axios';

class Gift30tApi {
  constructor(apiKey) {
    this.apiKey = apiKey;
    this.baseUrl = 'https://gift30t.com/api/v1';
    this.client = axios.create({
      baseURL: this.baseUrl,
      headers: {
        'X-API-KEY': this.apiKey,
        'Content-Type': 'application/json'
      }
    });
  }

  // دریافت پاسخ‌ها و مدیریت خطاها
  async request(method, endpoint, data = null) {
    try {
      const response = await this.client({
        method,
        url: endpoint,
        data
      });
      return response.data;
    } catch (error) {
      if (error.response) {
        // خطای API
        throw error.response.data;
      } else {
        // خطای شبکه یا موارد دیگر
        throw new Error('خطا در برقراری ارتباط با سرور');
      }
    }
  }

  // توابع API
  async getProducts(params = {}) {
    return this.request('get', '/products', null, { params });
  }

  async getProductDetails(productId) {
    return this.request('get', `/products/${productId}`);
  }

  async createOrder(orderData) {
    return this.request('post', '/orders', orderData);
  }

  async getOrder(orderId) {
    return this.request('get', `/orders/${orderId}`);
  }

  async getWalletBalance() {
    return this.request('get', '/wallet/balance');
  }
}

// استفاده از کلاس
const api = new Gift30tApi('YOUR_API_KEY');

دریافت لیست محصولات

دریافت محصولات
// دریافت لیست محصولات با فیلتر دسته‌بندی
async function getGiftCards() {
  try {
    const result = await api.getProducts({
      category: 'GIFTCARD',
      page: 1,
      pageSize: 20
    });
    
    console.log('محصولات دریافت شدند:', result.data);
    return result.data;
  } catch (error) {
    console.error('خطا در دریافت محصولات:', error);
    throw error;
  }
}

ثبت سفارش

ثبت سفارش
// ثبت سفارش جدید
async function placeOrder(productId, regionPropertyId, email) {
  try {
    const orderData = {
      products: [
        {
          productId: productId,
          regionPropertyId: regionPropertyId,
          quantity: 1
        }
      ],
      requiredFields: {
        [productId]: [
          {
            fieldId: 1, // فرض کنید فیلد ایمیل با شناسه 1
            value: email
          }
        ]
      }
    };
    
    const result = await api.createOrder(orderData);
    console.log('سفارش با موفقیت ثبت شد:', result.data);
    return result.data;
  } catch (error) {
    console.error('خطا در ثبت سفارش:', error);
    throw error;
  }
}

مثال کامل

در این مثال، فرآیند کامل خرید شامل بررسی موجودی، انتخاب محصول، ثبت سفارش و پیگیری وضعیت نشان داده شده است:

مثال کامل خرید گیفت کارت
// مثال کامل
async function buyGiftCard() {
  try {
    // 1. بررسی موجودی کیف پول
    const walletResult = await api.getWalletBalance();
    console.log('موجودی کیف پول:', walletResult.data.balance);
    
    // 2. دریافت لیست محصولات
    const productsResult = await api.getProducts({ category: 'GIFTCARD' });
    const products = productsResult.data;
    
    if (products.length === 0) {
      console.log('محصولی یافت نشد');
      return;
    }
    
    // فرض می‌کنیم اولین محصول را انتخاب می‌کنیم
    const selectedProduct = products[0];
    console.log('محصول انتخاب شده:', selectedProduct.name);
    
    // 3. انتخاب ویژگی منطقه (مثلاً اولین گزینه)
    const region = selectedProduct.regions[0];
    const property = region.properties[0];
    console.log('ویژگی انتخاب شده:', property.title, '- قیمت:', property.price);
    
    // 4. بررسی کافی بودن موجودی
    if (walletResult.data.balance < property.price) {
      console.log('موجودی کیف پول کافی نیست');
      return;
    }
    
    // 5. ثبت سفارش
    const orderResult = await placeOrder(
      selectedProduct.id,
      property.id,
      'example@gmail.com'
    );
    
    console.log('سفارش با موفقیت ثبت شد:', orderResult);
    
    // 6. پیگیری سفارش
    setTimeout(async () => {
      await checkOrderStatus(orderResult.orderId);
    }, 5000); // پس از 5 ثانیه وضعیت را بررسی می‌کنیم
    
  } catch (error) {
    console.error('خطا در فرآیند خرید:', error);
  }
}

نکات مهم

  • اطمینان حاصل کنید که کلید API خود را در مکانی امن ذخیره کرده و آن را در کدهای قابل دسترس عمومی قرار ندهید.
  • در صورت بروز خطا، همیشه پاسخ API را بررسی کنید تا متوجه دلیل دقیق خطا شوید.
  • برای محیط تولید، حتماً مدیریت خطا و تلاش مجدد برای درخواست‌ها را پیاده‌سازی کنید.
  • برای اطمینان از صحت داده‌ها، همیشه ورودی‌های کاربر را اعتبارسنجی کنید.
  • توجه داشته باشید که برای استفاده از API، کیف پول شما باید شارژ باشد.