qodehub/slydepay-php-rest-api

来自 Qodehub 团队的 Slydepay PHP SDK。

dev-master 2021-09-24 06:33 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,进行以下更改

  1. providers 数组添加一个新项目
	Qodehub\Slydepay\Laravel\PackageServiceProvider::class,
  1. 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.
  1. 现在,通过运行以下命令将配置发布到您的应用程序的 config 目录
	artisan vendor:publish --provider="Qodehub\Slydepay\Laravel\PackageServiceProvider"

Facade

每次在您的代码中使用 Slydepay facade 时,请记住在文件顶部添加此行到命名空间导入

	use Qodehub\Slydepay\Laravel\Facades\Slydepay;

有关 Laravel Facades 的更多信息,请参阅 Laravel 文档

在 PHP 应用中安装 Slydepay

  1. 使用 composer 安装 Slydepay
	$ composer require qodehub/slydepay-php-rest-api
  1. 创建一个 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();

必需

  • 支付令牌
  • 支付选项
  • 客户姓名
  • 客户电子邮件
  • 客户手机号码(发送方)

可选

  • 外部账户参考

Invoice sample

检查支付状态

在处理所进行的支付之前,您通常需要检查支付状态,无论是 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-1PSR-2PSR-4。如果您发现遵守上的疏忽,请通过拉取请求发送补丁。

贡献

发现了错误或有功能请求吗?请首先查看已知问题,并在必要时打开新问题。有关详细信息,请参阅贡献行为准则

安全

如果您发现任何与安全相关的问题,请通过电子邮件victorariama@qodehub.com联系,而不是使用问题跟踪器。