رجیستری SDK

packages.irandargah.com

رجیستری SDKهای ایران‌درگاه

SDK رسمی درگاه پرداخت ایران‌درگاه برای ۷ زبان — یک تنظیم یک‌باره، بعد همان npm، Composer، pip، NuGet، Maven و Go همیشگی.

بسته‌ها فقط همین‌جا منتشر می‌شوند — نه در npmjs، PyPI، NuGet.org یا Packagist.

  • نسخه1.1.0
  • به‌روزرسانی۲۲ مهر ۱۴۰۵
  • مجوزMIT

نصب و راه‌اندازی

زبان خود را انتخاب کنید؛ هر زبان یک تنظیم یک‌باره دارد و پس از آن با دستورهای معمول نصب و به‌روزرسانی می‌کنید.

PHP

irandargah/sdk1.1.0
انتشار: ۲۲ مهر ۱۴۰۵
  1. مرحله ۱: تنظیم یک‌باره

    مخزن ایران‌درگاه را به پروژه اضافه کنید. در Composer 2 مخزن‌های تعریف‌شده در پروژه حالت canonical دارند: بسته‌های irandargah/* فقط از همین مخزن گرفته می‌شوند، نه از Packagist.

    shell
    composer config repositories.irandargah composer https://packages.irandargah.com/composer

    معادل آن در composer.json:

    composer.json
    "repositories": {
        "irandargah": { "type": "composer", "url": "https://packages.irandargah.com/composer" }
    }
  2. مرحله ۲: نصب

    shell
    composer require irandargah/sdk
  3. مرحله ۳: استفاده

    PHP
    use IranDargah\Sdk\Client;
    
    $client = new Client('idg_live_xxx', ['sandbox' => false]);
    
    // ایجاد تراکنش (مبلغ به ریال) — authority را روی سفارش ذخیره کنید
    $tx = $client->createPayment([
        'amount'       => 100000,
        'order_id'     => $order['id'],
        'callback_url' => 'https://shop.tld/callback',
    ]);
    header('Location: ' . $tx['gateway_url']);

    در بازگشت از بانک، پرداخت را با verifyForOrder و authority و مبلغِ ذخیره‌شده روی سفارش تأیید کنید (پارامترهای callback امضا ندارند). راهنمای کامل، وب‌هوک و اقساط: مستندات SDK.

دانلود مستقیم نسخه 1.1.0۱ فایل · SHA256SUMS

Laravel

irandargah/laravel1.1.0
انتشار: ۲۲ مهر ۱۴۰۵
  1. مرحله ۱: تنظیم یک‌باره

    همان مخزن Composer ایران‌درگاه:

    shell
    composer config repositories.irandargah composer https://packages.irandargah.com/composer
  2. مرحله ۲: نصب

    shell
    composer require irandargah/laravelphp artisan vendor:publish --tag=irandargah-config

    وابستگی irandargah/sdk از همین مخزن و illuminate/support از Packagist نصب می‌شود. سپس توکن را در .env بگذارید:

    .env
    IRANDARGAH_TOKEN=idg_live_xxx
    IRANDARGAH_SANDBOX=false
  3. مرحله ۳: استفاده

    Laravel
    use IranDargah\Laravel\Facades\IranDargah;
    
    $tx = IranDargah::createPayment([
        'amount'       => $order->amount, // ریال
        'order_id'     => (string) $order->id,
        'callback_url' => route('irandargah.callback'),
    ]);
    $order->update(['authority' => $tx['authority']]); // حتماً ذخیره کنید
    
    return redirect()->away($tx['gateway_url']);

    در بازگشت از بانک، پرداخت را با IranDargah::verifyForOrder و authority و مبلغِ ذخیره‌شده روی سفارش تأیید کنید (پارامترهای callback امضا ندارند). راهنمای کامل، وب‌هوک و اقساط: مستندات SDK.

دانلود مستقیم نسخه 1.1.0۱ فایل · SHA256SUMS

Node.js

@irandargah/sdk1.1.0
انتشار: ۲۲ مهر ۱۴۰۵
  1. مرحله ۱: تنظیم یک‌باره

    در .npmrc پروژه فقط اسکوپ @irandargah به این رجیستری می‌رود؛ بقیه بسته‌ها همچنان از npmjs:

    .npmrc
    @irandargah:registry=https://packages.irandargah.com/npm/

    با pnpm و yarn 1 هم همین .npmrc کار می‌کند؛ در yarn berry: npmScopes.irandargah.npmRegistryServer در .yarnrc.yml.

  2. مرحله ۲: نصب

    shell
    npm install @irandargah/sdk
  3. مرحله ۳: استفاده

    JavaScript
    const { IranDargahClient } = require('@irandargah/sdk');
    
    const client = new IranDargahClient('idg_live_xxx', { sandbox: false });
    
    // ایجاد تراکنش (مبلغ به ریال) — authority را روی سفارش ذخیره کنید
    const tx = await client.createPayment({
      amount: 100000,
      order_id: order.id,
      callback_url: 'https://shop.tld/callback',
    });
    res.redirect(tx.gateway_url);

    در بازگشت از بانک، پرداخت را با verifyForOrder و authority و مبلغِ ذخیره‌شده روی سفارش تأیید کنید (پارامترهای callback امضا ندارند). راهنمای کامل، وب‌هوک و اقساط: مستندات SDK.

دانلود مستقیم نسخه 1.1.0۱ فایل · SHA256SUMS
  • irandargah-sdk-1.1.0.tgz۳۴٫۹ کیلوبایت
    SHA-256b31e195c23cfe596aa1ec57da5e65f39a55b46003894e8c99005557f7c363b0b

Python

irandargah1.1.0
انتشار: ۲۲ مهر ۱۴۰۵
  1. مرحله ۱: تنظیم یک‌باره

    pip تنظیم سراسری لازم ندارد: نشانی index را هنگام نصب با --index-url بدهید. SDK هیچ وابستگی‌ای ندارد، پس همین یک index کافی است.

    از --extra-index-url استفاده نکنید: pip همه indexها را یکی می‌کند و بالاترین نسخه را از هرکدام برمی‌دارد؛ اگر کسی بسته‌ای به نام irandargah با نسخه بالاتر روی PyPI منتشر کند، همان نصب می‌شود (dependency confusion).

  2. مرحله ۲: نصب

    shell
    pip install irandargah --index-url https://packages.irandargah.com/pypi/simple

    یا در requirements.txt کنار بسته‌های دیگر PyPI، نشانی مستقیم با هش (بدون نیاز به index اضافه):

    requirements.txt
    irandargah @ https://packages.irandargah.com/pypi/files/irandargah-1.1.0-py3-none-any.whl#sha256=08a21684f1171b472231a04aeaacc295b372dd896622e3444195732454c31c84
  3. مرحله ۳: استفاده

    Python
    from irandargah import Client
    
    client = Client("idg_live_xxx", sandbox=False)
    
    # ایجاد تراکنش (مبلغ به ریال) — authority را روی سفارش ذخیره کنید
    tx = client.create_payment(
        amount=100000,
        order_id=order.id,
        callback_url="https://shop.tld/callback",
    )
    # کاربر را به tx["gateway_url"] هدایت کنید

    در بازگشت از بانک، پرداخت را با verify_for_order و authority و مبلغِ ذخیره‌شده روی سفارش تأیید کنید (پارامترهای callback امضا ندارند). راهنمای کامل، وب‌هوک و اقساط: مستندات SDK.

دانلود مستقیم نسخه 1.1.0۲ فایل · SHA256SUMS

Go

packages.irandargah.com/go/irandargah1.1.0
انتشار: ۲۲ مهر ۱۴۰۵
  1. مرحله ۱: تنظیم یک‌باره

    shell
    go env -w GOPRIVATE=packages.irandargah.com

    GOPRIVATE باعث می‌شود Go مستقیم از همین دامنه بخواند و سراغ proxy.golang.org و sum.golang.org (که از ایران اغلب در دسترس نیستند) نرود؛ هش ماژول در go.sum پروژه شما ثبت می‌شود.

  2. مرحله ۲: نصب

    shell
    go get packages.irandargah.com/go/irandargah@v1.1.0
  3. مرحله ۳: استفاده

    Go
    import irandargah "packages.irandargah.com/go/irandargah"
    
    client := irandargah.NewClient("idg_live_xxx", irandargah.WithSandbox(false))
    
    // ایجاد تراکنش (مبلغ به ریال) — tx.Authority را روی سفارش ذخیره کنید
    tx, err := client.CreatePayment(irandargah.PaymentParams{
        Amount:      100000,
        OrderID:     "ORDER-123",
        CallbackURL: "https://shop.tld/callback",
    })
    if err != nil {
        return err
    }
    http.Redirect(w, r, tx.GatewayURL, http.StatusSeeOther)

    در بازگشت از بانک، پرداخت را با VerifyForOrder و authority و مبلغِ ذخیره‌شده روی سفارش تأیید کنید (پارامترهای callback امضا ندارند). راهنمای کامل، وب‌هوک و اقساط: مستندات SDK.

دانلود مستقیم نسخه 1.1.0۱ فایل · SHA256SUMS

C# / .NET

IranDargah.Sdk1.1.0
انتشار: ۲۲ مهر ۱۴۰۵
  1. مرحله ۱: تنظیم یک‌باره

    فایل nuget.config کنار solution:

    nuget.config
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <packageSources>
        <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
        <add key="irandargah" value="https://packages.irandargah.com/nuget/v3/index.json" />
      </packageSources>
      <packageSourceMapping>
        <packageSource key="nuget.org">
          <package pattern="*" />
        </packageSource>
        <packageSource key="irandargah">
          <package pattern="IranDargah.*" />
        </packageSource>
      </packageSourceMapping>
    </configuration>

    با packageSourceMapping بسته‌های IranDargah.* فقط از این رجیستری و بقیه فقط از nuget.org گرفته می‌شوند.

  2. مرحله ۲: نصب

    shell
    dotnet add package IranDargah.Sdk
  3. مرحله ۳: استفاده

    C#
    using IranDargah.Sdk;
    
    var client = new IranDargahClient("idg_live_xxx", new IranDargahOptions { Sandbox = false });
    
    // ایجاد تراکنش (مبلغ به ریال) — tx.Authority را روی سفارش ذخیره کنید
    var tx = await client.CreatePaymentAsync(new PaymentParams {
        Amount = 100000,
        OrderId = order.Id,
        CallbackUrl = "https://shop.tld/callback",
    });
    return Redirect(tx.GatewayUrl);

    در بازگشت از بانک، پرداخت را با VerifyForOrderAsync و authority و مبلغِ ذخیره‌شده روی سفارش تأیید کنید (پارامترهای callback امضا ندارند). راهنمای کامل، وب‌هوک و اقساط: مستندات SDK.

دانلود مستقیم نسخه 1.1.0۲ فایل · SHA256SUMS

Java

com.irandargah:irandargah-sdk1.1.0
انتشار: ۲۲ مهر ۱۴۰۵
  1. مرحله ۱: تنظیم یک‌باره

    Maven — در pom.xml:

    pom.xml
    <repositories>
      <repository>
        <id>irandargah</id>
        <url>https://packages.irandargah.com/maven</url>
      </repository>
    </repositories>

    یا Gradle (Kotlin DSL) — includeGroup فقط com.irandargah را از این مخزن می‌خواهد:

    build.gradle.kts
    repositories {
        mavenCentral()
        maven {
            url = uri("https://packages.irandargah.com/maven")
            content { includeGroup("com.irandargah") }
        }
    }

    Maven مخزن‌های تعریف‌شده در pom.xml را پیش از Central می‌پرسد و ثبت namespace com.irandargah روی Central به تأیید مالکیت دامنه نیاز دارد.

  2. مرحله ۲: نصب

    pom.xml
    <dependency>
      <groupId>com.irandargah</groupId>
      <artifactId>irandargah-sdk</artifactId>
      <version>1.1.0</version>
    </dependency>
    build.gradle.kts
    dependencies {
        implementation("com.irandargah:irandargah-sdk:1.1.0")
    }

    وابستگی Gson از Maven Central می‌آید.

  3. مرحله ۳: استفاده

    Java
    import com.irandargah.sdk.IranDargahClient;
    
    IranDargahClient client = new IranDargahClient("idg_live_xxx", new IranDargahClient.Options());
    
    // ایجاد تراکنش (مبلغ به ریال) — tx.authority را روی سفارش ذخیره کنید
    IranDargahClient.PaymentParams p = new IranDargahClient.PaymentParams();
    p.amount = 100000L;
    p.orderId = order.getId();
    p.callbackUrl = "https://shop.tld/callback";
    
    IranDargahClient.Transaction tx = client.createPayment(p);
    // کاربر را به tx.gatewayUrl هدایت کنید

    در بازگشت از بانک، پرداخت را با verifyForOrder و authority و مبلغِ ذخیره‌شده روی سفارش تأیید کنید (پارامترهای callback امضا ندارند). راهنمای کامل، وب‌هوک و اقساط: مستندات SDK.

دانلود مستقیم نسخه 1.1.0۳ فایل · SHA256SUMS

آخرین نسخه‌ها

فهرست ماشینی همه نسخه‌ها و فایل‌ها در registry.json است.

زبانبستهنسخهانتشار
PHP irandargah/sdk 1.1.0
Laravel irandargah/laravel 1.1.0
Node.js @irandargah/sdk 1.1.0
Python irandargah 1.1.0
Go packages.irandargah.com/go/irandargah 1.1.0
C# / .NET IranDargah.Sdk 1.1.0
Java com.irandargah:irandargah-sdk 1.1.0

نکته امنیتی: فقط از همین رجیستری

  • تنظیم‌های بالا طوری انتخاب شده‌اند که بسته‌های ایران‌درگاه فقط از این رجیستری گرفته شوند و بسته هم‌نامی که کسی روی رجیستری عمومی بگذارد جای آن را نگیرد (dependency confusion): اسکوپ npm، مخزن canonical در Composer، --index-url به‌جای --extra-index-url در pip، packageSourceMapping در NuGet، includeGroup در Gradle و GOPRIVATE در Go.
  • نسخه‌ها تغییرناپذیرند؛ فایل قفل (package-lock.json، composer.lock، go.sum، packages.lock.json) هش بسته را نگه می‌دارد. هش SHA-256 همه فایل‌ها در SHA256SUMS و فهرست ماشینی در registry.json است.
  • همه SDKها با مجوز MIT منتشر می‌شوند.