winwin / mbupay
Installs: 11
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 4
Forks: 0
Open Issues: 0
Type:project
Requires
- php: >= 5.6
- guzzlehttp/guzzle: ^6.2
- psr/log: ^1.0
Requires (Dev)
- monolog/monolog: ^1.22
- phpunit/phpunit: ^5.0
- vlucas/phpdotenv: ^2.4
This package is auto-updated.
Last update: 2024-12-15 19:23:22 UTC
README
安装
使用 composer:
$ composer require winwin/mbupay
配置
调用接口需要先创建 payment 对象:
use winwin\mbupay\Config; use winwin\mbupay\payment\Payment; $payment = new Payment(new Config([ 'appid' => $appid, 'secret' => $secret, 'mch_id' => $merchant_id, ]));
创建订单
use winwin\mbupay\payment\Order; $result = $payment->prepare(new Order([ 'method' => 'mbupay.wxpay.jsapi', 'body' => '支付1分', 'total_fee' => 1, 'out_trade_no' => date('ymdHis') . mt_rand(1000, 9999), 'notify_url' => 'http://example.org/notify', 'openid' => $openid, ]));
处理支付异步通知
$response = $payment->handleNotify(function($notify, $successful) { // 处理逻辑 return true; }); echo $response->getBody();
handleNotify
接收一个回调函数,该回调函数接收两个参数,这两个参数分别为:
$notify
为封装了通知信息的数组对象,可以使用对象或者数组形式来读取通知内容,比如:$notify->total_fee
或者$notify['total_fee']
。$successful
用于判断用户是否付款成功了
回调函数返回 false 或者一个具体的错误消息,那么系统会在稍后再次继续通知你,直到你明确的告诉它:“我已经处理完成了”,在函数里 return true;
代表处理完成。
handleNotify
返回值 $response
是一个 PSR-7 Response 对象。
调试
如果需要打印 http 请求日志,可使用 PSR-3 实现库,例如 Monolog :
use Monolog\Logger; use Monolog\Handler\StreamHandler; $logger = new Logger('WinwinPay'); $logger->pushHandler(new StreamHandler('php://stderr', Logger::DEBUG)); $payment->setLogger($logger);