samuelbie / mpesa
这是与莫桑比克Mpesa Open API通信的接口
1.5.6
2021-07-04 19:12 UTC
Requires
- ext-curl: *
- guzzlehttp/guzzle: ^5.3|^6.2|^7.0
- dev-master
- 1.5.6
- 1.5.5
- 1.5.4
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.5
- 1.4.4
- 1.4.3
- 1.4.2
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.9
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-dependabot/npm_and_yarn/http-cache-semantics-and-semantic-release-and-semantic-release/npm--removed
- dev-dependabot/npm_and_yarn/json5-2.2.3
- dev-dependabot/npm_and_yarn/decode-uri-component-0.2.2
- dev-dependabot/npm_and_yarn/marked-and-semantic-release/changelog-and-semantic-release/commit-analyzer-and-semantic-release/git-and-semantic-release/github-and-semantic-release/npm-and-semantic-release/release-notes-generator-and-semantic-release-4.1.1
- dev-dependabot/npm_and_yarn/minimist-and-commitizen-1.2.7
- dev-dependabot/npm_and_yarn/semver-regex-and-semantic-release/changelog-and-semantic-release/commit-analyzer-and-semantic-release-and-semantic-release/github-and-semantic-release/npm-and-semantic-release/release-notes-generator-3.1.4
- dev-dependabot/npm_and_yarn/lodash-and-commitizen-4.17.21
- dev-dependabot/npm_and_yarn/shelljs-and-commitizen--removed
This package is auto-updated.
Last update: 2024-09-16 19:13:50 UTC
README
MPesa Laravel SDK
正如其名,Laravel MPESA SDK是一个用于通过MPESA进行在线支付的SDK。
从此SDK开始,您可以与Open-api通信,并执行收集、转账、查询和其他由Mpesa提供的操作。
安装
最基础的安装方法是使用依赖管理器Composer。这实际上是我推荐的。
composer require samuelbie/mpesa
或者,只需将其添加到您的依赖中(composer.json)
"samuelbie/mpesa": "^1.5",
然后执行以下命令
composer update
配置
所有配置都将保存在内部配置文件mpesa.php中,其外观如下
<?php return [ /* |-------------------------------------------------------------------------- | API host of M-Pesa API |-------------------------------------------------------------------------- | | Here you may specify the API host provided by Vodacom for API operations | */ 'api_host' => env('MPESA_API_HOST', 'api.sandbox.vm.co.mz'), /* |-------------------------------------------------------------------------- | Public key for use in M-Pesa API |-------------------------------------------------------------------------- | | Here you may specify the public key provided by Vodacom to you | */ 'public_key' => env('MPESA_PUBLIC_KEY'), /* |-------------------------------------------------------------------------- | API Key of M-Pesa API |-------------------------------------------------------------------------- | | Here you may specify the API key provided by Vodacom to you | */ 'api_key' => env('MPESA_API_KEY'), /* |-------------------------------------------------------------------------- | Origin of M-Pesa API |-------------------------------------------------------------------------- | | */ 'origin' => env('MPESA_ORIGIN', '*'), 'verifySSL' => false, /* |-------------------------------------------------------------------------- | Service Provider Code of M-Pesa API |-------------------------------------------------------------------------- | | Here you may specify the service provider code of M-Pesa provided by Vodacom to you | */ 'service_provider_code' => env('MPESA_PROVIDER_NUMBER', '171717'), /* |-------------------------------------------------------------------------- | Initiator Identifier of M-Pesa API |-------------------------------------------------------------------------- | | Here you may the initiator identifier provided by Vodacom to you | */ 'initiator_identifier' => env('MPESA_INITIATOR_IDENTIFIER'), /* |-------------------------------------------------------------------------- | Security credential of M-Pesa API |-------------------------------------------------------------------------- | | Here you may specify the security credential provided by Vodacom to you | */ 'security_credential' => env('MPESA_SECURITY_CREDENTIAL'), "c2b_endpoint" => env('MPESA_C2B_ENDPOINT', ':18352/ipg/v1x/c2bPayment/singleStage/'), "b2c_endpoint" => env('MPESA_B2C_ENDPOINT', ':18345/ipg/v1x/b2cPayment/'), "query_endpoint" => env('MPESA_Query_ENDPOINT', ':18353/ipg/v1x/queryTransactionStatus/'), "reversal_endpoint" => env('MPESA_Reversal_ENDPOINT', ':18354/ipg/v1x/reversal/'), "c2b_method" => env('MPESA_C2B_METHOD', "POST"), "b2c_method" => env('MPESA_B2C_METHOD', "POST"), "query_method" => env('MPESA_Query_METHOD', "GET"), "reversal_method" => env('MPESA_Reversal_METHOD', "PUT"), ];
在这种情况下,您需要在您的.env文件中传递所有本地或生产凭证,并附加以下密钥。
MPESA_API_HOST='api.vm.co.mz' #ou api.sandbox.vm.co.mz MPESA_API_KEY = 'api Key' MPESA_PUBLIC_KEY = 'Chave Pubica=' MPESA_PROVIDER_NUMBER='171700' MPESA_ORIGIN='*' MPESA_INITIATOR_IDENTIFIER='JMhMnVM3dddddRMA3' MPESA_SECURITY_CREDENTIAL='Sp0ng3dddd'
使用方法
可用方法
收集(C2B)
签名
/** * Initiates a C2B transaction on the M-Pesa API. * @param float $amount Valor * @param string $msisdn numero de telefone (Ex: 847386187 / +258850233654) * @param string $reference Referencia da transação. Ex: Compra de Modem 3G * @param string $third_party_reference Referencia única da transação. Ex: 1285GVHss * @return TransactionResponseInterface * @throws Exception */ public function c2b(float $amount, string $msisdn, string $reference, string $third_party_reference): TransactionResponseInterface
示例
use Samuelbie\Mpesa\Transaction; $mpesa = new Transaction(); $response = $mpesa->c2b('10','258845968745', 'reference' ,'unique_reference');
向客户转账(B2C)
签名
/** * Initiates a B2C transaction on the M-Pesa API. * @param float $amount Valor * @param string $msisdn numero de telefone (Ex: 847386187 / +258850233654) * @param string $reference Referencia da transação. Ex: Pagamento de comissão de venda * @param string $third_party_reference Referencia única da transação. Ex: 1285GVHss * @return TransactionResponseInterface * @throws Exception */ public function b2c(float $amount, string $msisdn, string $reference, string $third_party_reference): TransactionResponseInterface
示例
use Samuelbie\Mpesa\Transaction; $mpesa = new Transaction(); $response = $mpesa->b2c('10','258845968745', 'Comissao' ,'unique_reference');
向实体转账(B2B)
撤销(Reversal)
签名
/** * Initiates a Reversal transaction on the M-Pesa API. * @param float $amount Valor a ser revertido * @param string $transaction_id ID Transação que precisa ser revertida * @param string $third_party_reference Referencia única da transação. Ex: 1285GVHss * @return TransactionResponseInterface */ public function reversal( float $amount, string $transaction_id, string $third_party_reference ): TransactionResponseInterface
示例
use Samuelbie\Mpesa\Transaction; $mpesa = new Transaction(); $response = $mpesa->reversal(10,'ACK19SSS', 'Agua2020');
查询交易状态
/** * Initiates a transaction Query on the M-Pesa API. * @param string $query_reference Transaction id/ Conversation ID (Gerado pelo MPesa) * @param string $third_party_reference Referencia única da transação (Gerado pelo sistema de terceiro). Ex: 1285GVHss * @return TransactionResponseInterface */ public function query(string $query_reference, string $third_party_reference): TransactionResponseInterface
示例
use Samuelbie\Mpesa\Transaction; $mpesa = new Transaction(); $response = $mpesa->query('56b97c7a59dd40738843ca7234796c4d', 'Agua2020');
结果
所有操作或可用方法都返回一个TransactionResponseInterface对象,该接口要求实现它的类实现这些方法
/** * Returns the Response Code * * @return string */ public function getCode(): string; /** * Returns the response description * * @return string */ public function getDescription(): string; /** * Returns the TransactionID * * @return string */ public function getTransactionID(): string; /** * Returns the Conversation ID * * @return string */ public function getConversationID(): string; /** * Returns the Transaction Status from Query API * * @return string */ public function getTransactionStatus(): string; /** * Returns the raw response from M-Pesa API * * @return string */ public function getResponse(): string; /** * Returns the Response Code * @return string */ public function getStatusCode(): string; /** * Returns the JSON response from M-Pesa API * @return string */ public function getBody();
建议
建议用户首先阅读Open-Api的文档并理解其工作原理,以便理解响应代码和消息。
贡献
在此,我们要感谢PHP abdulmueid\mpesa包的创建者,因为此包是他们创建的包的适配。这是我的Kanimanbo献给你们的
安全漏洞
如果您在此包中发现任何漏洞,请通过samuel.bie75@gmail.com发送电子邮件给Samuel Bié。所有安全漏洞都将得到适当的分析和处理。
许可
Mpesa Laravel SDK是在MIT许可下发布的开源代码。