افزونههای وردپرس که قابلیت اتصال به درگاه پرداخت دارند، همیشه این دغدغه را داشتهاند که چگونه از تمامی درگاههای پرداخت مستقیم و واسط پشتیبانی کنیم؟ قطعا توسعه و از آن مهمتر نگهداری اتصال به تمام درگاه پرداختها مسئلهای زمانبر بوده و صرفه ندارد.
گیتلند این مشکل را برطرف کرده است. شما میتوانید برای پرداخت از درگاه پرداخت هوشمند و ایمن گیتلند استفاده کنید. یکبار افزونه خودتان را به گیتلند متصل کنید، گیتلند قابلیت اتصال به نزدیک به ۳۰ درگاه پرداخت را برای شما فراهم میکند.
برای اتصال به گیتلند تنها نیاز هست که ۳ مرحله زیر را پیاده سازی کنید.
۱. مرحله اول: تعریف افزونه #
در مرحله اول نیاز هست که افزونه خود را به گیتلند معرفی کنید. این کار با تکه کد زیر قابل انجام هست:
<?php
add_filter( 'nabik/gateland/transaction_clients', 'add_gateland_client' );
function add_gateland_client( array $clients ): array {
$clients['PLUGIN_SLUG'] = 'PLUGIN_NAME';
return $clients;
}
در کد بالا مقدار PLUGIN_SLUG یک نامک منحصر بفرد و PLUGIN_NAME نام قابل نمایش افزونه مورد نظر میباشد. دقت داشته باشید که PLUGIN_SLUG تکراری نباشد.
۱. مرحله دوم: ایجاد تراکنش و هدایت کاربر #
برای انجام پرداخت، نیاز هست که تراکنشی ایجاد کنید و کاربر را جهت پرداخت آن تراکنش به صفحه پرداخت هدایت کنید.
<?php
use Nabik\Gateland\Pay;
$data = [
'amount' => 10000, // مبلغ به تومان
'client' => 'PLUGIN_SLUG', // مقداری که در مرحله ۱ انتخاب شد
'user_id' => 12, // شناسه کاربر در صورتی که وارد سایت شده است
'order_id' => 1480, // شماره سفارش/تراکنش داخل افزونه مورد نظر
'callback' => 'https://site.com/callback?oid=149039', // آدرس برگشت از درگاه
'description' => 'توضیحات تراکنش که اختیاری است',
'mobile' => '09139998080', // شماره تلفن کاربر در صورت وجود
'currency' => 'IRT', // ثابت و برابر با IRT
];
try {
$response = Pay::request( $data );
} catch ( \Exception $e ) {
wp_die( $e->getMessage() );
return;
}
if ( ! $response['success'] ) {
wp_die( $response['message'] );
return;
}
// Save $response['data']['authority']
wp_redirect( $response['data']['payment_link'] );
در این مرحله در صورتی که مقدار response[‘success’]$ برابر با true بود باید مقدار response[‘data’][‘authority’]$ را به عنوان شماره تراکنش ذخیره کرده و کاربر را به آدرس response[‘data’][‘payment_link’]$ هدایت کنید.
۳. مرحله سوم: برگشت از درگاه #
پس از انجام موفق یا ناموفق تراکنش کاربر به آدرس callback تعیین شده در مرحله قبل هدایت میشود. در این مرحله لازم هست که شما تراکنش را verify کنید. این کار با تکه کد زیر قابل انجام هست.
<?php
use Nabik\Gateland\Enums\Transaction\StatusesEnum;
use Nabik\Gateland\Pay;
$response = Pay::verify( $authority, 'PLUGIN_SLUG' );
if ( $response['success'] || $response['data']['status'] == StatusesEnum::STATUS_PAID ) {
// تراکنش موفق بوده است
} else {
// تراکنش ناموفق بوده است
}
مقدار authority$ همان مقداری هست که در مرحله دوم و در زمان ایجاد تراکنش دریافت و ذخیره کردید. مقدار PLUGIN_SLUG هم مقداری هست که در مرحله اول و در زمان تعریف افزونه تعیین کردید. در صورتی که تراکنش موفق بود میتوانید محصول یا خدمات را به کاربر ارائه دهید، در غیر اینصورت سفارش را لغو کنید و کاربر را برای پرداخت مجدد هدایت کنید.
دقت داشته باشید که مقدار response[‘success’]$ فقط در اولین verify برابر true هست. در صورتی که متد Pay::verify بیش از یکبار فراخوانی شود این مقدار برابر false خواهد بود، ولی شما میتوانید وضعیت تراکنش را از response[‘data’][‘status’]$ بخوانید.
در پایان در صورتی که برای پیاده سازی درگاه و اتصال به گیتلند نیاز به کمک داشتید، حتما از طریق تیکتها یا فرم تماس با ما نابیک با ما در ارتباط باشید. همچنین به عنوان نمونه میتوانید از درگاه ووکامرس به گیتلند متصل شده است، کمک بگیرید.