پرش به مطلب اصلی

SDKها

Node.js — @varizyar/sdk

npm install @varizyar/sdk
import { Varizyar, constructWebhookEvent } from '@varizyar/sdk';

const vz = new Varizyar({ apiKey: process.env.VARIZYAR_API_KEY! });

// ایجاد و هدایت
const payment = await vz.payments.create({
amount: '1000000',
callbackUrl: 'https://shop.example.com/varizyar/callback',
orderId: 'ORD-1024',
});
res.redirect(payment.checkoutUrl);

// بازگشت مشتری
const cb = Varizyar.parseCallback(req.url);
const result = await vz.payments.verify(cb!.paymentId!);
if (result.verified) {
/* تکمیل سفارش */
}

// وب‌هوک (بدنه‌ی خام)
app.post('/varizyar/webhook', express.raw({ type: '*/*' }), (req, res) => {
const event = constructWebhookEvent(
process.env.VARIZYAR_WEBHOOK_SECRET!,
req.header('x-varizyar-signature') ?? '',
req.body,
);
if (event.event === 'payment.confirmed') {
/* تکمیل idempotent */
}
res.sendStatus(200);
});

// sandbox
await vz.sandbox.simulateDeposit({ paymentId: payment.id, outcome: 'match' });

خطاها VarizyarError با status، code و پیام فارسی هستند؛ isCreditExhausted و isNoCardAvailable برای دو خطای رایج.

PHP — varizyar/sdk

composer require varizyar/sdk
use Varizyar\Client;
use Varizyar\Webhook;

$vz = new Client(getenv('VARIZYAR_API_KEY'));
$payment = $vz->createPayment(['amount' => '1000000', 'callbackUrl' => 'https://shop.example.com/varizyar/callback', 'orderId' => 'ORD-1024']);
header('Location: ' . $payment['checkoutUrl']);

// بازگشت
$cb = Client::parseCallback($_GET);
$result = $vz->verifyPayment($cb['paymentId']);
if ($result['verified']) { /* تکمیل سفارش */ }

// وب‌هوک
$event = Webhook::constructEvent(getenv('VARIZYAR_WEBHOOK_SECRET'), $_SERVER['HTTP_X_VARIZYAR_SIGNATURE'] ?? '', file_get_contents('php://input'));

PHP ۷.۴ به بالا با cURL. خطاها Varizyar\VarizyarException با getErrorCode() و getHttpStatus().

زبان‌های دیگر

API ساده است: یک هدر Authorization: Bearer sk_…، JSON، و بررسی امضای HMAC-SHA256. مرجع API و نمونه‌ی امضا کافی است.