imlolman/phonepe-php-sdk

PhonePe支付网关PHP SDK。

0.0.2 2023-08-25 14:35 UTC

This package is auto-updated.

Last update: 2024-09-25 16:51:52 UTC


README

这是一个PhonePe API的非官方PHP SDK。它仍在开发中,尚未准备好用于生产使用。

简而言之,PhonePe网关提供以下四种支付解决方案。让我们查看下面的图像,了解每种支付解决方案的流程。

[x] PG标准结账(已完成)

  • PhonePe提供由PhonePe PG托管的标准化结账页面。这处理了UPI、卡和网上银行支付方式的支付信息和处理。PhonePe PG托管结账页面符合PCI DSS标准。Standard Checkout

[ ] PG自定义结账(待定)

  • PhonePe为拥有自己的结账页面并希望PhonePe PG通过各种支付方式(如UPI、卡和网上银行)处理支付的商家提供选项。这是一个基于简单API集成的选项,商家可以调用PhonePe PG API并完成支付处理。Custom Checkout

[ ] 定期支付(待定)

  • 类似订阅/电子授权的定期支付。 Recurring Payments Recurring Payments

[ ] Android PG SDK(未计划)

  • 如名称所示,这是一个为Android应用提供的SDK。

贡献

欢迎提交拉取请求。由于我使用标准结账,因此我创建了它;然而,由于结构已经准备就绪,您也可以创建其他支付方式。

如果您使用任何其他支付方式,请提交包含您解决方案的拉取请求,我将合并它。

安装

composer require imlolman/phonepe-php-sdk

使用

标准结账

  • 创建交易
<?php

require 'vendor/autoload.php';

use PhonePe\PhonePe;

// Below are the Test Details for Standard Checkout UAT, you can get your own from PhonePe Team. Make sure to keep the Salt Key and Salt Index safe (in environment variables or .env file).
$phonepe = PhonePe::init(
    "MERCHANTUAT", // Merchant ID
    "MUID123", // Merchant User ID
    "099eb0cd-02cf-4e2a-8aca-3e6c6aff0399", // Salt Key
    "1", // Salt Index
    "https://webhook.site/f7b80fd4-dc89-49a5-b569-d9d0a10b19c8", // Redirect URL, can be defined on per transaction basis
    "https://webhook.site/f7b80fd4-dc89-49a5-b569-d9d0a10b19c8", // Callback URL, can be defined on per transaction basis
    "DEV" // or "PROD"
);


$amountInPaisa = 100; // Amount in Paisa
$userMobile = "9999999999"; // User Mobile Number
$transactionID = "MERCHANT".rand(100000, 999999); // Transaction ID to track and identify the transaction, make sure to save this in your database.

$redirectURL = $phonepe->standardCheckout()->createTransaction($amountInPaisa, $userMobile, $transactionID)->getTransactionURL();

// You can also define the redirect and callback URL on per transaction basis
// $redirectURL = $phonepe->standardCheckout()->createTransaction($amountInPaisa, $userMobile, $transactionID, "https://webhook.site/f7b80fd4-dc89-49a5-b569-d9d0a10b19c8", "https://webhook.site/f7b80fd4-dc89-49a5-b569-d9d0a10b19c8")->getTransactionURL();

echo "Redirect URL: ".$redirectURL.PHP_EOL;
header("Location: ".$redirectURL);
  • 使用webhook回调验证交易
<?php

require 'vendor/autoload.php';

use PhonePe\PhonePe;

// Below are the Test Details for Standard Checkout UAT
$phonepe = PhonePe::init(
    "MERCHANTUAT", // Merchant ID
    "MUID123", // Merchant User ID
    "099eb0cd-02cf-4e2a-8aca-3e6c6aff0399", // Salt Key
    "1", // Salt Index
    "https://webhook.site/f7b80fd4-dc89-49a5-b569-d9d0a10b19c8", // Redirect URL
    "https://webhook.site/f7b80fd4-dc89-49a5-b569-d9d0a10b19c8", // Callback URL
    "DEV" // or "PROD"
);

$phonepe->standardCheckout()->getTransactionResponse(); // Returns Transaction Response Array after validating if the transaction is from PhonePe

$phonepe->standardCheckout()->getTransactionID(); // Returns Transaction ID

$phonepe->standardCheckout()->getTransactionStatus(); // [
//     "PAYMENT_SUCCESS",
//     "BAD_REQUEST",
//     "AUTHORIZATION_FAILED",
//     "INTERNAL_SERVER_ERROR",
//     "TRANSACTION_NOT_FOUND",
//     "PAYMENT_ERROR",
//     "PAYMENT_PENDING",
//     "PAYMENT_DECLINED",
//     "TIMED_OUT",
// ]

$phonepe->standardCheckout()->isTransactionSuccess(); // Returns true if transaction is successful, false otherwise.
  • 使用交易ID验证交易
<?php

require 'vendor/autoload.php';

use PhonePe\PhonePe;

// Below are the Test Details for Standard Checkout UAT
$phonepe = PhonePe::init(
    "MERCHANTUAT", // Merchant ID
    "MUID123", // Merchant User ID
    "099eb0cd-02cf-4e2a-8aca-3e6c6aff0399", // Salt Key
    "1", // Salt Index
    "https://webhook.site/f7b80fd4-dc89-49a5-b569-d9d0a10b19c8", // Redirect URL
    "https://webhook.site/f7b80fd4-dc89-49a5-b569-d9d0a10b19c8", // Callback URL
    "DEV" // or "PROD"
);

$transactionId = "MERCHANT123456"; // Transaction ID

$phonepe->standardCheckout()->getTransactionResponseByTransactionId($transactionId); // Returns Transaction Response Array after validating if the transaction is from PhonePe

$phonepe->standardCheckout()->getTransactionIDByTransactionId($transactionId); // Returns Transaction ID

$phonepe->standardCheckout()->getTransactionStatusByTransactionId($transactionId); // [
//     "PAYMENT_SUCCESS",
//     "BAD_REQUEST",
//     "AUTHORIZATION_FAILED",
//     "INTERNAL_SERVER_ERROR",
//     "TRANSACTION_NOT_FOUND",
//     "PAYMENT_ERROR",
//     "PAYMENT_PENDING",
//     "PAYMENT_DECLINED",
//     "TIMED_OUT",
// ]

$phonepe->standardCheckout()->isTransactionSuccessByTransactionId($transactionId); // Returns true if transaction is successful, false otherwise.