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

SDKها

Node.js — @varizapp/sdk

npm install @varizapp/sdk
import { Varizapp, constructWebhookEvent } from '@varizapp/sdk';

const vz = new Varizapp({ apiKey: process.env.VARIZAPP_API_KEY! });

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

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

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

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

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

PHP — varizapp/sdk

composer require varizapp/sdk
use Varizapp\Client;
use Varizapp\Webhook;

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

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

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

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

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

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