tenetup/zarinpal

此包用于发送和验证zarinpal网关交易

dev-main 2023-02-01 15:20 UTC

This package is auto-updated.

Last update: 2024-09-29 18:54:02 UTC


README

在本包中,可以轻松连接到ZarinPal网关并验证您的交易。

注意:以下说明适用于Laravel的最新版本。

Total Downloads License

JetBrains

安装

  1. 通过Composer安装包

    $ composer require tenetup/zarinpal
  2. 在您的config/app.php中注册包

    A. 在提供者 -> TenetUp\Zarinpal\ZarinpalServiceProvider::class中设置,

    B. 在别名 -> 'zarinpal' => \TenetUp\Zarinpal\ZarinpalFacade::class中设置,

  3. 可选,如果您想更改任何默认设置,请发布配置文件

    php artisan vendor:publish --provider="TenetUp\Zarinpal\ZarinpalServiceProvider"

注意:配置文件名为"zarinpal.php"

请求

发起请求并发送到zarrinpal

return \zarinpal::createRequest(20000);

注意:价格是必需的(您必须以toman标准设置您的价格)

完整命令

return \zarinpal::createRequest(20000 , '091232145687' , 'example@email.com' , 'description');

示例响应

{
  "Node": "sandbox",
  "Method": "SOAP",
  "Status": 100,
  "Message": "عمليات با موفقيت انجام گرديده است.",
  "StartPay": "https://sandbox.zarinpal.com/pg/StartPay/000000000000000000000000000000592872",
  "Authority": "000000000000000000000000000000592872"
}

验证

在交易成功或失败后,您必须在您的backPaymentURL中验证您的交易

默认情况下,zarinpal网关会发送唯一的授权代码,我们通过此代码进行授权

return \zarinpal::verifyTransAction(20000);

注意:在此方法中,只需设置价格,然后我们检查您的$_GET['authority']、价格和您的merchantID与zarinpal,然后在响应中您可以处理您的进程

示例响应

verification success
{
  "Node": "sandbox",
  "Method": "SOAP",
  "Status": 100,
  "Message": "عمليات با موفقيت انجام گرديده است.",
  "Amount": 20000,
  "RefID": 12345678,
  "Authority": "000000000000000000000000000000592907"
}
verification failed
{
  "Node": "sandbox",
  "Method": "SOAP",
  "Status": -54,
  "Message": "اتوریتی نامعتبر است",
  "Amount": 20000,
  "RefID": "",
  "Authority": ""
}

配置

config/zarinpal中,您必须更改您的merchantID,并且您可以更改您需要的任何内容,您可以简单地将您的callBackUrl设置为route('backPayment')

return [
    'merchantID' => 'xxxx-xxxx-xxxx-xxx-xxxxx',
    'sandBox' => true,
    'callBackUrl' => 'https://example.com/backPayment',
    'zarinGate' => false,



    'errorList' => [
        "-1" 	=> "اطلاعات ارسال شده ناقص است.",
        "-2" 	=> "IP و يا مرچنت كد پذيرنده صحيح نيست",
        "-3" 	=> "با توجه به محدوديت هاي شاپرك امكان پرداخت با رقم درخواست شده ميسر نمي باشد",
        "-4" 	=> "سطح تاييد پذيرنده پايين تر از سطح نقره اي است.",
        "-9" 	=> "خطای اعتبار سنجی",
        "-10" 	=> "ای پی و يا مرچنت كد پذيرنده صحيح نيست",
        "-11" 	=> "مرچنت کد فعال نیست لطفا با تیم پشتیبانی ما تماس بگیرید",
        "-12" 	=> "تلاش بیش از حد در یک بازه زمانی کوتاه.",
        "-15" 	=> "ترمینال شما به حالت تعلیق در آمده با تیم پشتیبانی تماس بگیرید",
        "-16" 	=> "سطح تاييد پذيرنده پايين تر از سطح نقره اي است.",
        "-21" 	=> "هيچ نوع عمليات مالي براي اين تراكنش يافت نشد",
        "-22" 	=> "تراكنش ناموفق ميباشد",
        "-30" 	=> "اجازه دسترسی به تسویه اشتراکی شناور ندارید",
        "-31" 	=> "حساب بانکی تسویه را به پنل اضافه کنید مقادیر وارد شده واسه تسهیم درست نیست",
        "-32" 	=> "Wages is not valid, Total wages(floating) has been overload max amount.	",
        "-33" 	=> "رقم تراكنش با رقم پرداخت شده مطابقت ندارد",
        "-34" 	=> "سقف تقسيم تراكنش از لحاظ تعداد يا رقم عبور نموده است",
        "-35" 	=> "تعداد افراد دریافت کننده تسهیم بیش از حد مجاز است",
        "-40" 	=> "اجازه دسترسي به متد مربوطه وجود ندارد.",
        "-41" 	=> "اطلاعات ارسال شده مربوط به AdditionalData غيرمعتبر ميباشد.",
        "-42" 	=> "مدت زمان معتبر طول عمر شناسه پرداخت بايد بين 30 دقيه تا 45 روز مي باشد.",
        "-50" 	=> "مبلغ پرداخت شده با مقدار مبلغ در وریفای متفاوت است",
        "-51" 	=> "تراكنش نا موفق ميباشد",
        "-52" 	=> "خطای غیر منتظره با پشتیبانی تماس بگیرید",
        "-53" 	=> "اتوریتی برای این مرچنت کد نیست",
        "-54" 	=> "اتوریتی نامعتبر است",
        "100" 	=> "عمليات با موفقيت انجام گرديده است.",
        "101" 	=> "عمليات پرداخت موفق بوده و قبلا این تراكنش انجام شده است.",
    ]
];

默认情况下,包设置为沙箱,仅用于测试。如果您想发布您的项目,您必须将sanbox => false更改

版权和许可证

tenetup-zarinpalmajid behzadnasabpooria noruzi编写,并在MIT许可证下发布。

版权(c)2021 TenetUp公司