imlolman / phonepe-php-sdk
PhonePe支付网关PHP SDK。
0.0.2
2023-08-25 14:35 UTC
Requires
- guzzlehttp/guzzle: ^7.7
README
这是一个PhonePe API的非官方PHP SDK。它仍在开发中,尚未准备好用于生产使用。
简而言之,PhonePe网关提供以下四种支付解决方案。让我们查看下面的图像,了解每种支付解决方案的流程。
[x] PG标准结账(已完成)
[ ] PG自定义结账(待定)
- PhonePe为拥有自己的结账页面并希望PhonePe PG通过各种支付方式(如UPI、卡和网上银行)处理支付的商家提供选项。这是一个基于简单API集成的选项,商家可以调用PhonePe PG API并完成支付处理。
[ ] 定期支付(待定)
[ ] 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.