qodehub / slydepay-php-rest-api
来自 Qodehub 团队的 Slydepay PHP SDK。
Requires
- php: >=5.4.0
- guzzlehttp/guzzle: ^6.3
- illuminate/support: ^5.0||^6.0||^7.0||^8.0
Requires (Dev)
- leaphub/phpcs-symfony2-standard: ^2.0.3
- mockery/mockery: ~1.0.0
- orchestra/testbench: 3.5.* || 3.6.* || 3.7.*
- phploc/phploc: ^4.0
- phpmd/phpmd: ^2.6.0
- phpunit/phpunit: ^5.7 || ^6.0.0 || ^7.4.0
- satooshi/php-coveralls: ^1.0
- sebastian/phpcpd: *
- squizlabs/php_codesniffer: ^2.9.1
This package is auto-updated.
Last update: 2024-09-30 01:40:59 UTC
README
Qodehub 的 Slydepay PHP-SDK。
最低要求
此库需要 PHP >=5.4.0 <=~7.1。原则上建议使用最新可用的 PHP 版本,并报告问题以便持续改进。
此包可用于 普通 PHP 应用 或 Laravel 应用
在 Laravel 应用中安装 Slydepay
使用 composer 安装 Slydepay
$ composer require qodehub/slydepay-php-rest-api
在 Laravel 5.5 中,服务提供者和别名是自动注册的。如果您使用的是 Laravel 5.5 或更高版本,请直接跳到步骤 3。
一旦 composer 安装完成,您可以在 config/app.php
中添加服务提供者和别名 facade。打开 config/app.php
,进行以下更改
- 向
providers
数组添加一个新项目
Qodehub\Slydepay\Laravel\PackageServiceProvider::class,
- 向
aliases
数组添加一个新项目
'Slydepay' => Qodehub\Slydepay\Laravel\Facades\Slydepay,
This part is optional. If you don't want to use the facade, you can skip step 2.
- 现在,通过运行以下命令将配置发布到您的应用程序的
config
目录
artisan vendor:publish --provider="Qodehub\Slydepay\Laravel\PackageServiceProvider"
Facade
每次在您的代码中使用 Slydepay
facade 时,请记住在文件顶部添加此行到命名空间导入
use Qodehub\Slydepay\Laravel\Facades\Slydepay;
有关 Laravel Facades 的更多信息,请参阅 Laravel 文档。
在 PHP 应用中安装 Slydepay
- 使用 composer 安装 Slydepay
$ composer require qodehub/slydepay-php-rest-api
- 创建一个 Slydepay 配置实例,如下所示,使用您的 Slydepay 商户账户信息(电子邮件或电话和密钥)
$config = new \Qodehub\Slydepay\Config($merchantEmailOrMobileNumber, $merchantKey);
This configuration can then be injected into a slydepay instance.
配置
配置可以通过以下模式之一注入到 Slydepay 实例中
$slydepay = Slydepay::make()->injectConfig($config);
or
$slydepay = new Slydepay($config);
or
$slydepay = new Slydepay($merchantEmailOrMobileNumber, $merchantKey);
命名空间
每次在您的代码中使用无 facade 的 Slydepay
时,请记住在文件顶部添加此行到命名空间导入
use Qodehub\SlydePay\SlydePay;
用法
注意:以下每个示例都假设您在 Laravel 应用程序中使用。代码示例中的注释部分仅显示如何在非 Laravel 应用程序中注入配置。或者,您也可以使用 配置部分 中的任何示例。
列出支付选项
检索 Slydepay 上的所有可能的支付选项
SlydePay::listPayOPtions() // ->injectConfig($config) ->run();
创建发票
创建发票并发送 Slydepay 支付令牌。此 Web 方法假设一个简单的场景,即通过传递总交易金额而没有复杂的订单项数组。如果您习惯了 SOAP API,那么可以用于显示的订单项数组也可以使用。这会返回有用的详细信息,以便您的客户完成支付。其中之一是 PayToken,应将其附加到 Slydepay 支付页面 URL(https://app.slydepay.com/paylive/detailsnew.aspx?pay_token)中。例如,如果 PayToken 是 PayTokenGUID,则重定向 URL 将是:https://app.slydepay.com/paylive/detailsnew.aspx?pay_token=PayTokenGUID
Slydepay::createInvoice() ->amount(100) // The amount the to bill the user. ->orderCode(1) //A unique order code. // ->injectConfig($config) ->run();
必需
- 金额
- 订单代码
可选
- 描述
- 订单项
创建并发送发票
创建发票并发送 Slydepay 支付令牌。这与 CreateInvoice 方法的 Web 方法相同,但不同之处在于它假设商家希望我们向客户发送发票,而不是您使用返回的令牌将用户重定向到 Slydepay 支付 URL。此方法除了 CreateInvoice 参数外还包含一些额外的参数。需要注意的是,在移动货币支付选项的情况下,客户电话号码是强制性的,否则会以电子邮件的形式向您的客户发送发票。当您或客户在表格中选择 MTN 移动货币作为支付选项时,将直接在他们的手机上收到账单提示。
- 对于 MTN_MONEY,只有在您的客户钱包中有足够的钱来支付发票金额时,才会发送移动账单提示。
Slydepay::createAndSendInvoice() ->amount(100) // The amount the to bill the user. ->orderCode(1) //A unique order code. ->description('Some nasty description') // A description for the payment. ->orderItems([]) // Items ordered. ->payoption('mm') // A valid pay option. ->sendInvoice(true) // Determine if invoice should be sent or not. ->customerName('Victor') // The name of the customer. ->customerEmail('iamovac@gmail.com') // The customer's email address. ->from(12345) // The Phone number that will recieve this bill. // ->injectConfig($config) ->run();
必需
- 金额
- 订单代码
- 支付选项
- 发送发票
- 客户姓名
- 客户电子邮件
- 客户手机号码(发送方)
可选
- 描述
- 订单项
发送发票
此 Web 方法可用于发送预先生成的客户发票。有几种使用此 Web 方法的方式,例如使用不同方式重试失败的支付。由您的某些后台进程生成后自动发送给客户的计划重复发票生成。该方法期望通过 Slydepay 为发票生成的支付令牌引用您的发票。发票发送时会发生什么?如果是除移动货币以外的任何内容,则像下面显示的邮件将发送给您的客户。当您的客户点击首选的支付渠道并完成交易时,Slydepay 将调用您的回调 URL,这属于您熟悉的流程,您处理并调用 Slydepay 确认或取消交易。
Slydepay::sendInvoice() ->payoption('mm') // A valid pay option. ->payToken(123) // Paytoken returned by Slydepay. This is optional if orderCode is used ->customerName('Victor') // The name of the customer. ->customerEmail('iamovac@gmail.com') // The customer's email address. ->from(12345) // The Phone number that will recieve this bill. // ->injectConfig($this->config) ->run();
必需
- 支付令牌
- 支付选项
- 客户姓名
- 客户电子邮件
- 客户手机号码(发送方)
可选
- 外部账户参考
检查支付状态
在处理所进行的支付之前,您通常需要检查支付状态,无论是 slydepay 的成功回调还是否。此方法就是为了这个目的,通过检查状态,您有机会告诉 slydepay 如果状态是“已确认”,则确认支付。以下是 Slydepay 使用的状态列表。
Slydepay::checkPaymentStatus() ->confirmTransaction(true) // If set to true slydepay will confirm pending payment for this order ->payToken(123) // Paytoken returned by Slydepay. This is optional if orderCode is used // ->injectConfig($config) ->run();
必需
- 确认交易
可选
- 订单代码
- 支付令牌
PENDING | 订单已支付,但您尚未确认
CONFIRMED | 支付已确认
DISPUTED | 当您或 Slydepay 取消支付时
CANCELLED | 当您的客户对此支付提出争议时
确认交易
确认交易的方发。假设我们代表您收到付款,您需要处理您的客户刚刚支付的金额,在您成功处理后,您需要调用此方法以确认支付,以便从您的 slydepay 账户中提取的资金可以立即使用。未能调用此方法,交易状态将保持挂起模式。
SlydePay::confirmTransaction() ->payToken(123) // Your merchant order unique Id generated by/in your system. This is optional if payToken or transaction id is used // ->injectConfig($this->config) ->run();
任何这些都可以用作 payToken 的替代
- 订单代码
- 交易ID
取消交易
取消交易的方发。假设我们代表您收到付款,您需要处理您的客户刚刚支付的金额,但由于您的处理问题,您无法再履行服务,您需要调用此方法以确认支付,以便代表您收取的资金退回到您的客户。未能调用此方法,交易状态将保持挂起模式。
SlydePay::cancelTransaction() ->payToken(123) // Your merchant order unique Id generated by/in your system. This is optional if payToken or transaction id is used // ->injectConfig($this->config) ->run();
任何这些都可以用作 paytoken 的替代
- 订单代码
- 交易ID
质量
要在命令行运行单元测试,请发出 composer install
然后在包根目录中发出 phpunit
。这需要 Composer 可用作为 composer
,并且 PHPUnit 可用作为 phpunit
。
这个库试图遵守 PSR-1、PSR-2 和 PSR-4。如果您发现遵守上的疏忽,请通过拉取请求发送补丁。
贡献
发现了错误或有功能请求吗?请首先查看已知问题,并在必要时打开新问题。有关详细信息,请参阅贡献和行为准则。
安全
如果您发现任何与安全相关的问题,请通过电子邮件victorariama@qodehub.com联系,而不是使用问题跟踪器。