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 🙏

© 2026 – Pkg Stats / Ryan Hefner

sep-payment-gatway

v1.0.17

Published

sep payment gatway

Readme


برای مطالعه ی جزئیات پیاده سازی صفحه ی ویکی را مشاهده کنید

https://github.com/mohsenxad/sep-payment-gateway/wiki


👨‍💻 نحوه ی نصب پکیج

npm i sep-payment-gatway -s

👨‍💻 نحوه ی استفاده از پیکج

⚙️ تعریف گیتوی سامان

require('dotenv').config();

const sepGateway = require('sep-payment-gatway')(
    {
        SEP_TERMINAL_ID: process.env.SEP_TERMINAL_ID,
    }
);

console.log(sepGateway);

⚙️ نحوه ی دریافت توکن

متد دریافت توکن پرداخت از درگاه بانک سامان

sepGateway.createPayment

🍰 Sample Cdoe:

try
    {
        const invoice = sepGateway.makeInvoice(
            {
                Amount:1000,
                RedirectURL:'https://<YOUR_SITE_HOST.IR>/<CALL_BACK_PATH>',
                ResNum:`SEP_TEST_PAYMENT_${Math.floor(Math.random() * 999)}`,
            }
        );

        const payment = await sepGateway.createPayment(invoice);

        // Continue the process

    }
catch
(
    error
)
    {
        // Handle the error
    }

⚙️ دریافت محتوای پیج برای ارسال به کاربر

payment.getPaymentRedirectHTMLPage();

⚙️ دریافت آدرس اینترنتی برای ارسال به کاربر

payment.getPaymentUrl();

⏳ انتظار برای پرداخت مشتری

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

⏳ منتظر دریافت پاسخ از بانک باشید و اطلاعات ارسال شده توسط بانک را با دقت بررسی کنید.

💾 اطلاعات refNumber در این مرحله دریافت میشود. در مراحل بعدی این اطلاعات مورد نیاز میباشد.

☠️ مدیریت و بررسی اطلاعات دریافت شده در آدرس کال بک از مهمترین و خطرناکترین مراحل پرداخت میباشد. مراقب این مرحله باشید.

🔥 آدرس callBack باید به یک Function با مشخصات idempotent باشد.

  • 🏴‍☠️مراقب تکرار درخواست روی این آدرس باشید.
  • 🏴‍☠️مراقب ارسال درخواست پشت سر هم در چند میلی ثانیه روی آدرس callBack باشید.
  • 🏴‍☠️اطلاعات دریافت شده روی آدرس callBack را به صورت درجا در بانک اطلاعاتی ذخیره کنید.
  • 🏴‍☠️وضعیت پرداخت را در لحظه به حالت در حال پردازش ، در بانک اطلاعاتی تغییر دهید.

🏆 اگر متوجه خطرات این بخش نیستید با من مشورت کنید mohsenXAD


⚙️ نحوه ی تایید پرداخت

متد تایید و تثبیت پرداخت بانک سامان

sepGateway.verifyPayment

🍰 Sample Cdoe:

const refNumber = 'REFRENCE_NUMBER_OF_PAYMENT_FROM_SEP';

sepGateway.verifyPayment(refNumber);

⚙️ نحوه ی برگشت پرداخت

متد بازپرداخت بانک سامان

sepGateway.reversePayment

🍰 Sample Cdoe:

const refNumber = 'REFRENCE_NUMBER_OF_PAYMENT_FROM_SEP';
sepGateway.reversePayment(refNumber);

📐 payment flow

برای مشاهده ی این دیاگرام نیاز به پلاگین mermaid دارید.

sequenceDiagram
    title Payment Flow
    participant client browser
    participant appServer
    participant payment gatway
    participant shaparak

    client browser->>appServer: request payment

    appServer->>appServer: check order
    
    rect rgb(200, 150, 255)
        appServer->>+payment gatway: get payment token
        payment gatway->>-appServer: get token response
    end
    
    appServer->>appServer: store get token result

    appServer->>client browser: shaparak url
    client browser->>+shaparak: go to shaparak
    shaparak->>shaparak: process cart info flow
    shaparak->>-appServer: payment result on callback url
    appServer->>client browser: navigate to receipt page
    
    rect rgb(200, 150, 255)
        appServer->>+payment gatway: verify payment
        payment gatway->>-appServer: verify payment result
    end
    appServer->>appServer: store payment verification result

💎 پیشنهادات مربوط به بهینه کردن گیت وی سامان

  • 🤷‍♂️ Different data type for same value

    |Mehtod|Parameter|Data Type| |---|---|---| |getToken|TerminalId|String| |verfiy|TerminalNumber|Number| |reverse|TerminalNumber|Number|

  • 🤷‍♂️ status in get token is 1 or -1 but data type is number insted of boolean

  • 🤷‍♂️ Missleading state:

    if a transaction reversed before: we get ResultCode as موفق but success as false what does this means

📦 Entites

  1. invoice

Maintainers

install jest

  1. npm install --save-dev jest

video process

  1. review docuement
  2. create models test
  3. create modesl
  4. create functions test
  5. create functions