وب سرویس IDpay بخش ۲
در بخش اول از سری آموزشهای وب سرویس IDpay، مسیر دریافت API Key و ایجاد یک تراکنش جدید را با هم طی کردیم. اکنون به مهمترین و حساسترین مرحله رسیدهایم: تایید نهایی تراکنش. 🤩 این مرحله، قلب تپنده هر پرداخت موفق است. جایی که شما به سیستم اطمینان میدهید که وجه با موفقیت دریافت شده و سفارش کاربر باید پردازش شود. در این راهنما (وب سرویس IDpay بخش ۲)، به صورت قدم به قدم فرآیند بازگشت کاربر به سایت (Callback) و نحوه تایید تراکنش را بررسی میکنیم. همچنین، نکات کلیدی برای جلوگیری از خطای امنیتی خطرناک Double Spending را به شما آموزش خواهیم داد. بنابراین، با ما همراه باشید تا چرخه پرداخت خود را به صورت کامل و ایمن پیادهسازی کنید.
گام اول: بازگشت کاربر به سایت پذیرنده (Callback)
پس از اینکه کاربر اطلاعات کارت خود را در صفحه درگاه پرداخت وارد کرد و پرداخت را با موفقیت انجام داد، IDpay به صورت خودکار او را به آدرسی که شما در مرحله اول (ایجاد تراکنش) تحت عنوان callback مشخص کرده بودید، هدایت میکند.
اما این هدایت کاربر به تنهایی کافی نیست. در همین حین، سرویس IDpay مجموعهای از دادههای حیاتی را از طریق متد POST به آدرس callback شما ارسال میکند. این دادهها شامل اطلاعات کلیدی تراکنش هستند که شما برای اعتبارسنجی و تایید نهایی به آنها نیاز دارید.
گام دوم: تایید نهایی تراکنش (Verification)، کلید موفقیت شما 🔑
مرحله تایید تراکنش، لحظهای است که شما به سرورهای IDpay اعلام میکنید که اطلاعات بازگشتی از سمت درگاه را دریافت و تایید کردهاید. این کار برای تکمیل سیستمی پرداخت و جلوگیری از بازگشت پول به حساب مشتری ضروری است. اگر این مرحله را انجام ندهید، تراکنش ناقص باقی مانده و مبلغ پس از مدتی به حساب پرداختکننده بازگردانده میشود.
چگونه تراکنش را تایید کنیم؟
برای تایید، شما باید یک درخواست POST به همراه اطلاعات مشخصی به endpoint تایید تراکنش در IDpay ارسال کنید. در ادامه، یک نمونه کد به زبان Go و توضیحات کامل آن را مشاهده میکنید.
آدرس Endpoint برای تایید:
https://api.idpay.ir/v1.1/payment/verify
نمونه کد پیادهسازی (زبان Go):
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://api.idpay.ir/v1.1/payment/verify"
// مقادیری که از Callback دریافت کردهاید
data := map[string]string{
"id": "d2e353189823079e1e4181772cff5292", // کلید منحصر به فرد تراکنش
"order_id": "101", // شماره سفارش شما
}
payload, _ := json.Marshal(data)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(payload))
// تنظیم هدرهای درخواست
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-KEY", "6a7f99eb-7c20-4412-a972-6dfb7cd253a4") // کلید API شما
req.Header.Set("X-SANDBOX", "1") // برای تست در محیط آزمایشگاهی (1) یا محیط واقعی (0)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
idوorder_id: این دو مقدار را باید از دیتایی که در مرحلهCallbackبه سایت شماPOSTشده است، استخراج کنید.X-API-KEY: کلید API منحصر به فرد شما که از پنل IDpay دریافت کردهاید.X-SANDBOX: اگر این هدر را با مقدار1ارسال کنید، تراکنش در محیط آزمایشی (Sandbox) بررسی میشود. برای تراکنشهای واقعی، این هدر را حذف کنید یا مقدار آن را0قرار دهید.
نکات امنیتی حیاتی در سرویس IDpay 🛡️
پیادهسازی درگاه پرداخت فقط ارسال و دریافت داده نیست؛ بلکه تامین امنیت آن از اهمیت بالاتری برخوردار است. در ادامه به چند نکته بسیار مهم اشاره میکنیم که نادیده گرفتن آنها میتواند منجر به زیان مالی شود.
قانون ۱۰ دقیقه طلایی
به یاد داشته باشید که پس از پرداخت موفق توسط کاربر، شما حداکثر ۱۰ دقیقه فرصت دارید تا تراکنش را تایید کنید. در غیر این صورت، سیستم به طور خودکار تراکنش را ناموفق تلقی کرده و مبلغ را به حساب مشتری باز میگرداند.
جلوگیری از حمله خرج کردن دوباره (Double Spending)
این یکی از مهمترین مسئولیتهای شما به عنوان پذیرنده است. Double Spending یعنی یک کاربر با استفاده از یک رسید پرداخت، چندین بار از شما محصول یا خدمات دریافت کند.
- راهحل چیست؟ شما موظف هستید مقادیر منحصر به فردی مانند
idوtrack_idکه از API دریافت میکنید را در دیتابیس خود ذخیره کنید. قبل از تایید هر تراکنش، ابتدا دیتابیس خود را چک کنید تا مطمئن شوید اینidیاtrack_idقبلاً برای یک سفارش دیگر استفاده نشده باشد. این کار از تقلب جلوگیری میکند.
مزایای پیادهسازی صحیح وب سرویس IDpay
اتصال صحیح و کامل به سرویس IDpay مزایای قابل توجهی برای کسبوکار شما به همراه دارد. در ادامه به برخی از آنها اشاره میکنیم:
- ✅ افزایش امنیت پرداختها: با تایید صحیح تراکنش و بررسی
track_id، از تقلب و زیان مالی جلوگیری میکنید. - 🚀 اتوماسیون کامل فرآیند فروش: سفارشها به صورت خودکار پس از پرداخت موفق تایید و وارد مرحله پردازش میشوند.
- 📊 گزارشگیری دقیق مالی: تمام تراکنشها به صورت سیستمی ثبت میشوند و خطای انسانی در ثبت اطلاعات به صفر میرسد.
- 🤝 افزایش اعتماد مشتریان: یک فرآیند پرداخت سریع، روان و بدون خطا، تجربه کاربری مثبتی ایجاد کرده و اعتماد مشتری را جلب میکند.
- 🛠️ انعطافپذیری بالا: API قدرتمند IDpay به شما اجازه میدهد تا فرآیند پرداخت را کاملاً مطابق با نیازهای کسبوکار خود سفارشیسازی کنید.
هنوز در IDpay ثبتنام نکردهاید؟
اگر به دنبال یک درگاه پرداخت امن، سریع و با مستندات کامل برای توسعهدهندگان هستید، IDpay یک انتخاب هوشمندانه است. فرآیند ثبتنام بسیار ساده است:
- به وبسایت رسمی IDpay مراجعه کنید.
- اطلاعات کسبوکار خود را وارد و مدارک لازم را بارگذاری نمایید.
- پس از تایید هویت، درگاه پرداخت شما فعال میشود.
برای شروع فرآیند و دریافت درگاه پرداخت، همین حالا از طریق لینک زیر اقدام کنید:
ثبتنام و دریافت درگاه پرداخت از p.api.ir
جمعبندی نهایی
در این مقاله (وب سرویس IDpay بخش ۲)، با دو مرحله حیاتی Callback و Verification در فرآیند پرداخت آنلاین آشنا شدیم. آموختیم که چگونه پس از بازگشت کاربر، اطلاعات تراکنش را دریافت و با ارسال یک درخواست نهایی، آن را تایید کنیم. مهمتر از همه، بر اهمیت ذخیرهسازی شناسههای یکتا برای جلوگیری از حملات Double Spending تاکید کردیم.
اکنون شما دانش لازم برای تکمیل چرخه پرداخت در وبسایت یا اپلیکیشن خود را در اختیار دارید. پیادهسازی دقیق این مراحل، امنیت مالی کسبوکار و رضایت مشتریان شما را تضمین میکند.
💬 آیا شما تجربه پیادهسازی این وب سرویس را داشتهاید؟ چالشها یا نکات تکمیلی خود را در بخش نظرات با ما و دیگران به اشتراک بگذارید.
- برچسب ها:
- api
- API آیدی پی
- id pay
- Web API
- وب سرویس

