هاب پرداخت نیکو سیستم آفرین

پروژه‌های دیگر بدون اتصال مستقیم به درگاه، از nikoooo.ir برای پرداخت استفاده می‌کنند

۱) ثبت کلاینت

در سرور nikoooo.ir فایل App_Data/payment-clients.json را ویرایش کنید:

[
  {
    "AppId": "my-shop",
    "ApiKey": "your-secret-key",
    "Name": "فروشگاه من",
    "AllowedReturnHosts": [ "myshop.ir", "localhost" ]
  }
]
۲) ساخت پرداخت

POST https://nikoooo.ir/api/payments/create

هدرها: X-App-Id ، X-Api-Key ، Content-Type: application/json

{
  "amount": 150000,
  "description": "سفارش ۱۲۳",
  "returnUrl": "https://myshop.ir/payment/return",
  "notifyUrl": "https://myshop.ir/payment/notify",
  "externalRef": "ORD-123",
  "customerName": "علی رضایی",
  "customerMobile": "09121234567",
  "customerEmail": "ali@example.com"
}

پاسخ:

{
  "success": true,
  "token": "...",
  "paymentUrl": "https://nikoooo.ir/Pay/Start/...",
  "amount": 150000
}

کاربر را به paymentUrl هدایت کنید. صفحه پرداخت روی nikoooo.ir باز می‌شود.

۳) بازگشت کاربر (ReturnUrl)

بعد از پرداخت موفق/ناموفق، کاربر به returnUrl شما برمی‌گردد با این پارامترها:

  • token — شناسه پرداخت
  • statuspaid یا failed
  • amount — مبلغ به تومان
  • externalRef — کد سفارش شما
  • refId — کد پیگیری درگاه (در صورت موفقیت)
  • timestamp — زمان UTC به ثانیه
  • signature — امضای HMAC-SHA256

فرمول امضا (با همان ApiKey):

token|status|amount|externalRef|refId|timestamp
۴) وب‌هوک (NotifyUrl)

همان فیلدها به‌صورت JSON با متد POST به آدرس شما ارسال می‌شود. حتی اگر کاربر صفحه را ببندد، وضعیت از این مسیر می‌رسد.

۵) استعلام وضعیت

GET https://nikoooo.ir/api/payments/status/{token}

با همان هدرهای X-App-Id و X-Api-Key.

نمونه کلاینت C#

فایل آماده کپی در پروژه شما:

App_Data/NikooPaymentClient.sample.cs