21/08
2017
dev-master
9999999-dev
The Requires
- php >= 5.6
- guzzlehttp/guzzle ^6.2
- psr/log ^1.0
The Development Requires
使用 composer:, (*1)
$ composer require winwin/mbupay
调用接口需要先创建 payment 对象:, (*2)
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
用于判断用户是否付款成功了, (*3)
回调函数返回 false 或者一个具体的错误消息,那么系统会在稍后再次继续通知你,直到你明确的告诉它:“我已经处理完成了”,在函数里 return true;
代表处理完成。, (*4)
handleNotify
返回值 $response
是一个 PSR-7 Response 对象。, (*5)
如果需要打印 http 请求日志,可使用 PSR-3 实现库,例如 Monolog :, (*6)
use Monolog\Logger; use Monolog\Handler\StreamHandler; $logger = new Logger('WinwinPay'); $logger->pushHandler(new StreamHandler('php://stderr', Logger::DEBUG)); $payment->setLogger($logger);