hngx / moneywave-php
Moneywave API 的 PHP 封装
Requires
- php: >=5.4
- guzzlehttp/guzzle: ^6.2
README
Moneywave API 的 PHP 封装 请参阅官方文档以获取更多详细信息。
内容
配置
要执行事务或访问资源,您需要一个 moneywave 客户端实例,这将用于您的 API 调用。
$mw = new \HngX\Moneywave\Moneywave($yourApiKey, $yourSecretKey);
用法:调度事务/资源
执行事务
执行事务有 3 个简单步骤
-
创建事务。所有事务都接受 moneywave 客户端实例作为构造函数参数。`WalletToAccountTransaction` 和 `BulkWalletToAccountTransaction` 事务还接受第二个参数:钱包密码
-
设置适当的详细信息。在 文档 中为每个事务列出的所有字段都作为事务类的属性(通过魔术方法)可用,因此您可以单独设置它们。或者,您可以使用 `setDetails()` 函数一次性设置它们。**注意**:请确保使用与 https://moneywave.flutterwave.com/api 中描述的**完全相同**的参数名称(包括大小写)。以下字段在每个事务中自动为您设置:
- 通过调用 `dispatch()` 调度事务
以下是一个示例
//we want to perform a wallet to account transfer $tran = new \HngX\Moneywave\Transactions\WalletToAccountTransaction($mw, $walletPassword); //set details $tran->amount = 25000; $tran->bankcode = \HngX\Moneywave\Bank::STERLING; $tran->accountNumber = "000056050"; $tran->senderName = "Johnson"; $tran->ref = 40; //then make the transaction $tran->dispatch(); //or you could do this in a batch $tran->setDetails(array( "amount" => 25000, "bankcode" => \HngX\Moneywave\Bank::STERLING, "accountNumber" => "000056050", "senderName" => "Johnson", "ref" => 40 ))->dispatch();
可用的交易类型
AccountToAccountTransaction
CardToAccountTransaction
CardToWalletTransaction
TotalChargeToCardTransaction
WalletToAccountTransaction
BulkWalletToAccountTransaction
可用的银行代码
以下是 Moneywave API 当前支持的银行的列表。它们的代码作为常量在 `\HngX\Moneywavw\Bank
` 类中可用
FCMB // FIRST CITY MONUMENT BANK PLC
UNITY // UNITY BANK PLC
STANBIC_IBTC // STANBIC IBTC BANK PLC
STERLING // STERLING BANK PLC
STANBIC_MOBILE // STANBIC Mobile PLC
PAYCOM // PAYCOM
ECOBANK_MOBILE // ECOBANK MOBILE
FBN_MOBILE // FBN MOBILE
PARKWAY // PARKWAY
GTBANK_MOBILE // GTBank Mobile Money
ZENITH_MOBILE // ZENITH Mobile
ACCESS_MOBILE // ACCESS Mobile
ASO // Aso Savings and Loans
ACCESS // ACCESS BANK NIGERIA
AFRIBANK // AFRIBANK NIGERIA PLC
DIAMOND // DIAMOND BANK PLC
ECOBANK // ECOBANK NIGERIA PLC
ENTERPRISE // ENTERPRISE BANK LIMITED
FIDELITY // FIDELITY BANK PLC
FIRST // FIRST BANK PLC
GTBANK // GTBANK PLC
HERITAGE // HERITAGE BANK
KEYSTONE // KEYSTONE BANK PLC
SKYE // SKYE BANK PLC
STANDARD_CHARTERED // STANDARD CHARTERED BANK NIGERIA LIMITED
UNION // UNION BANK OF NIGERIA PLC
UBA // UNITED BANK FOR AFRICA PLC
WEMA // WEMA BANK PLC
ZENITH // ZENITH BANK PLC
访问资源
应用相同的 3 个步骤
-
创建资源。所有资源都将其 moneywave 客户端实例作为唯一的构造函数参数
-
设置适当的详细信息(如有必要)。`GetWalletBalance` 不需要任何额外数据。在 文档 中为每个资源列出的所有字段都作为资源类的属性(通过魔术方法)可用,因此您可以单独设置它们。或者,您可以使用 `setDetails()` 函数一次性设置它们。**注意**:请确保使用与 https://moneywave.flutterwave.com/api 中描述的**完全相同**的参数名称(包括大小写)。以下字段在每个资源中自动为您设置:
- 通过调用 `dispatch()` 调度资源
以下是一个示例
//we want to check our wallet balance $bal=new \HngX\Moneywave\Resources\GetWalletBalance($mw); $bal->dispatch();
可用的资源类型
GetWalletBalance
PreviousCardToAccount
PreviousWalletToAccount
RetryFailedTransaction
ValidateAccountNumber
TokenizeCard
用法:处理响应
在调度事务或资源后,您可以通过在对象上调用 `getResponse()
` 来访问完整的响应。
$tran->getResponse(); /* [ "status" => "success", "data" => [ ...] ] */
您还可以通过调用 `getStatus()
` 来单独找出 `status
`。
$tran->getStatus(); // -> "success" or "error"
您还可以直接调用 `successful()
` 来测试响应的 `status
` 是否为 `success
`:**注意**:根据 Moneywave,"成功" 并不一定意味着事务已成功完成。请参阅官方文档以获取更多详细信息
if ($tran->successful()) { //yay! } else { print_r($tran->getResponse()); }
验证交易
根据文档,在调度后,`AccountToAccountTransaction` 和 `CardToAccountTransaction` 两种交易类型可能还需要验证。为此,只需在事务对象上使用适当的数据调用 `validate()
` 即可。
$tran = new \HngX\Moneywave\AccountToAccountTransaction($mw); $tran->setDetails([ "firstname" => "Donald", "lastname" => "Trump", ... ]) ->dispatch(); if ($tran->successful()){ $tran->validate([ "transactionRef" => $tran->getResponse()["data"]["ref"], "authType" => "OTP", "authValue" => "7489", ]); }
注意:之后,调用 `getResponse()
` 或 `getStatus()
` 将返回验证过程的响应或状态
用法:错误
如果您做了任何违规操作,您将得到一个 `\HngX\MoneywaveException
` 实例。
安装
composer require hngx/moneywave-php
错误
如果您注意到任何错误,请创建一个新的问题。我们将立即处理它。