npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@aspianet/idpay

v1.0.2

Published

بسته توسعه نرم افزاری یا اس‌دی‌کی آیدی‌پی برای استفاده در محیط نودجی‌اس به همراه جاوااسکریپت یا تایپ‌اسکریپت

Downloads

8

Readme

درباره پرداخت‌یار آیدی‌پی

آیدی پی یک سیستم درگاه پرداخت شخصی است که بهترین و راحت ترین راه جهت دریافت پول میباشد. شما با ایجاد یک حساب کاربری در آیدی پی ، دارای یک صفحه پرداخت شخصی با آدرس منحصر به فرد خواهید شد، که با دادن آدرس آن میتوانید از هر شخصی به صورت الکترونیک پول دریافت نمایید. همچنین شما میتوانید برای وب سایت یا اپلیکیشن خود جهت اتصال به درگاه بانکی از خدمات وب سرویس آیدی پی استفاده کنید.

بسته توسعه موجود بر روی API رسمی آيدی‌پی تولید شده است.

روش نصب

npm install @aspianet/idpay

کاربرد

قبل از هر چیز شما نیازمند دریافت کلید API از پنل کاربری خود در آیدی پی هستید تا بتوانید به واسطه آن، SDK موجود را مقداردهی اولیه و راه اندازی کنید. برای مثال، شما می توانید کد زیر را در فایل اصلی اپلیکیشن اکسپرس خود (مانند app.js) ایجاد و با کلید API مقداردهی نمایید تا بتوانید در هر فایل دیگر اپلیکیشن خود بدون استفاده مکرر از این کلید از سایر امکانات SDK استفاده نمایید:

import { idPay } from '@aspianet/idpay';

idPay.init( "کلید-API" );

در صورتی که تمایل دارید در محیط توسعه برنامه خود را با اتصال به پرداخت‌یار آیدی‌پی به صورت آزمایشی تست کنید و نمی خواهید پرداخت واقعی صورت گیرد می توانید پارامتر دوم متود init را با مقدار true مقداردهی نمایید تا حالت آزمایشی فعال گردد.

ایجاد تراکنش

با استفاده از آدرس زیر می‌توانید یک تراکنش جدید ایجاد کنید.

import { idPay } from '@aspianet/idpay';

const transaction = await idPay.createTransaction( {
      order_id: '101',
      amount: 10000,
      name: 'امید روحانی',
      phone: '09380001234',
      mail: '[email protected]',
      desc: 'توضیحات پرداخت کننده',
      callback: 'https://example.com/callback',
    } );

درصورتیکه درخواست موفق باشد، وضعیت پاسخ 201 Created اعلام خواهد شد.

توجه: در پاسخ، مقادیر id و link باز میگردد که بهتر است آنها را در دیتابیس خود ذخیره کنید. بعد از ذخیره اطلاعات دریافتی، پرداخت کننده باید به لینک دریافت شده منتقل شود.

توجه: درصورتیکه هر یک از مقادیر name یا phone یا mail معتبر نباشند، خطایی باز نمی‌گردد و هیچ مقداری برای آن ذخیره نمی‌شود.

توجه: دامنه آدرس بازگشت به سایت پذیرنده یا callback باید مطابق با آدرسی باشد که در وب سرویس‌های من تعریف شده است.

بازگشت به سایت پذیرنده

بعد از اتمام عملیات پرداخت، درصورتیکه پرداخت با موفقیت انجام شده باشد، پرداخت کننده به آدرسی که پذیرنده در callback مشخص کرده بود منتقل می‌شود.

همچنین پارامترهای زیر به آدرس callback تعریف شده در مرحله ایجاد تراکنش با توجه به تنظیمات وب سرویس در داشبورد آیدی پی تحت عنوان روش بازگشت پس از پرداخت به دو روش POST (Post form) یا GET (Query String) ارسال می شوند. برای کسب اطلاعات بیشتر اینجا کلیک نمایید.

تایید تراکنش

بعد از دریافت اطلاعات به سایت پذیرنده و اعتبار سنجی اطلاعات توسط پذیرنده، پذیرنده باید تراکنش را تایید کند تا پرداخت بصورت سیستمی تکمیل شود و از بازگشت پول به پرداخت کننده جلوگیری شود. به این منظور از متود زیر می توانید استفاده نمایید:

import { idPay } from '@aspianet/idpay';

const verifiedTransaction = await idPay.verifyTransaction( {
    id: 'd2e353189823079e1e4181772cff5292',
    order_id: '101',
  } );

توجه: بعد از پرداخت تراکنش توسط پرداخت کننده، تراکنش باید ظرف مدت حداکثر 10 دقیقه تایید شود. در غیر اینصورت مبلغ به کارت پرداخت کننده برگردانده خواهد شد.

توجه: جهت جلوگیری از دوبار مصرف شدن یک پرداخت (Double Spending)، پذیرنده موظف است کلیدهای منحصر بفردی که از طریق API آیدی پی دریافت می‌کند را (مثل id و track_id) در دیتابیس خود ذخیره کند و از یکتا بودن آنها اطمینان حاصل فرماید. توجه داشته باشید که ممکن است یک مشتری رسید پرداخت آیدی پی را ذخیره کند و برای یک خرید دیگر از آن استفاده کند. مسئولیت بررسی و شناسایی Double Spending کاملا به عهده پذیرنده می‌باشد.

استعلام وضعیت تراکنش

با استفاده از متود زیر می‌توانید آخرین وضعیت یک تراکنش را دریافت نمایید.

import { idPay } from '@aspianet/idpay';

const info = await idPay.inquireTransaction( {
    id: 'd2e353189823079e1e4181772cff5292',
    order_id: '101',
  } );

لیست تراکنش ها

با استفاده از متود زیر می توانید لیست تراکنش های خود را دریافت کنید.

import { idPay } from '@aspianet/idpay';

const result = await idPay.listTransactions( {
  page: 0,
  page_size: 25,
  id: "e22952579725883bbad9f8fa429134bf",
  order_id: 101,
  amount: 10000,
  status: ["100"],
  track_id: "27384837",
  payment_card_no: "636214******5409",
  payment_hashed_card_no: "B913D97F01CE42601181135DF3D0F81DA9E98E61BE3E3AB4436E6345D6AB0AEA",
  payment_date: {min: 1600005000, max: 1600006000},
  settlement_date: {min: 1600005746, max: 1600006000}
} );

وضعیت تراکنش

برای دریافت پیام فارسی وضعیت تراکنش با استفاده از کد دریافتی آن در پاسخ های دریافتی و ... می توانید از متود زیر استفاده نمایید:

import { idPay } from '@aspianet/idpay';

const message = idPay.getStatusMsgByCode( 2 );