kuangjy / omnipay-qpay
为Omnipay PHP支付处理库提供QPay(QQ钱包)驱动程序
v3.0.2
2019-03-17 08:57 UTC
Requires
Requires (Dev)
- omnipay/tests: ^3
- squizlabs/php_codesniffer: ^3.3
This package is auto-updated.
Last update: 2024-09-29 05:27:54 UTC
README
为Omnipay PHP支付处理库提供QPay(QQ钱包)驱动程序
Omnipay 是一个不依赖于框架、多网关的PHP 5.3+支付处理库。此包实现了Omnipay对QPay的支持。
安装
Omnipay通过 Composer 安装。要安装
composer require kuangjy/omnipay-qpay
基本用法
此包提供以下网关
- QPay (QPay Common Gateway) QQ钱包支付通用网关
- QPay_App (QPay App Gateway) QQ钱包APP支付网关
- QPay_Native (QPay Native Gateway) QQ钱包原生扫码支付网关
- QPay_Js (QPay Js API/MP Gateway) QQ钱包公众号支付网关
- QPay_MicroPay (QPay Micro/POS Gateway) QQ钱包付款码支付网关
- QPay_RedPacket (QPay Red Packet) QQ钱包现金红包网关
- QPay_Transfer (QPay Transfer) QQ钱包企业付款到余额网关
用法
创建订单 文档
//gateways: QPay_App, QPay_Native, QPay_Js $gateway = Omnipay::create('QPay_Native'); $gateway->setAppId('app_id'); //required for QPay_App only $gateway->setAppKey('app_key'); //required for QPay_App only $gateway->setMchId('mch_id'); $gateway->setApiKey('api_key'); $order = [ 'out_trade_no' => time() . mt_rand(1000, 9999), 'body' => 'order information', 'attach' => 'attached information', 'total_fee' => '100', 'spbill_create_ip' => '127.0.0.1', 'notify_url' => 'http://example.com/notify.php', ]; /** * @var Omnipay\QPay\Message\CreateOrderRequest $request * @var Omnipay\QPay\Message\CreateOrderResponse $response */ $request = $gateway->purchase($order); $response = $request->send(); //available methods $response->isSuccessful(); $response->getData(); //For debug $response->getPrepayId(); //Prepay ID $response->getAppData(); //For QPay_App $response->getJsOrderData(); //For QPay_Js $response->getCodeUrl(); //For QPay_Native
创建MicroPay订单 文档
//gateways: QPay_MicroPay $gateway = Omnipay::create('QPay_MicroPay'); $gateway->setMchId('mch_id'); $gateway->setApiKey('api_key'); $order = [ 'out_trade_no' => time() . mt_rand(1000, 9999), 'body' => '商品描述', 'attach' => '附加信息', 'total_fee' => '100', 'spbill_create_ip' => '127.0.0.1', 'notify_url' => 'http://example.com/notify.php', 'device_info' => '001', 'auth_code' => '910783818928826810' ]; /** * @var Omnipay\QPay\Message\CreateMicroPayOrderRequest $request * @var Omnipay\QPay\Message\CreateMicroPayOrderResponse $response */ $request = $gateway->purchase($order); $response = $request->send(); //available methods $response->isSuccessful(); //Get result $response->getData(); //For debug
创建转账 文档
//gateways: QPay_Transfer $gateway = Omnipay::create('QPay_Transfer'); $gateway->setMchId('mch_id'); $gateway->setApiKey('api_key'); $gateway->setCertPath($certPath);//证书cert路径 $gateway->setKeyPath($keyPath);//证书key路径 $order = [ 'out_trade_no' => time() . mt_rand(1000, 9999), 'uin' => '123456789', 'memo' => '转账描述', 'total_fee' => '100', 'spbill_create_ip' => '127.0.0.1', ]; /** * @var Omnipay\QPay\Message\CreateTransferRequest $request * @var Omnipay\QPay\Message\CreateTransferResponse $response */ $request = $gateway->transfer($order); $response = $request->send(); //available methods $response->isSuccessful(); //Get result $response->getData(); //For debug
创建红包 文档
//gateways: QPay_RedPacket $gateway = Omnipay::create('QPay_RedPacket'); $gateway->setMchId('mch_id'); $gateway->setApiKey('api_key'); $gateway->setCertPath($certPath);//证书cert路径 $gateway->setKeyPath($keyPath);//证书key路径 $order = [ 'mch_billno' => '1441246101201610101234567890',//组成:mch_id+yyyymmdd+10位一天内不能重复的的数字 'mch_name' => '测试商户', 're_openid' => '123456789', 'total_amount' => '100', 'total_num' => '10', 'wishing' => '红包祝福语', 'act_name' => '活动名称', 'icon_id' => '23', 'min_value' => '1', 'max_value' => '100' ]; /** * @var Omnipay\QPay\Message\CreateRedPacketRequest $request * @var Omnipay\QPay\Message\CreateRedPacketResponse $response */ $request = $gateway->redPacket($order); $response = $request->send(); //available methods $response->isSuccessful(); //Get result $response->getData(); //For debug
通知 文档
$gateway = Omnipay::create('QPay'); $gateway->setAppId('app_id'); $gateway->setMchId('mch_id'); $gateway->setApiKey('api_key'); $response = $gateway->completePurchase([ 'request_params' => file_get_contents('php://input') ])->send(); if ($response->isPaid()) { //pay success var_dump($response->getRequestData()); }else{ //pay fail }
查询订单 文档
$response = $gateway->query([ 'transaction_id' => '1217752501201407033233368018', ])->send(); var_dump($response->isSuccessful()); var_dump($response->getData());
关闭订单 文档
$response = $gateway->close([ 'out_trade_no' => '20150806125346', ])->send(); var_dump($response->isSuccessful()); var_dump($response->getData());
退款 文档
$gateway->setCertPath($certPath); $gateway->setKeyPath($keyPath); $response = $gateway->refund([ 'transaction_id' => '1353933301461607211903715555', 'out_refund_no' => $outRefundNo, 'refund_fee' => 100, 'op_user_id' => '1900000109', 'op_user_passwd' => 'e47fefadd66e024bb2b85dfeb5fe86ba' ])->send(); var_dump($response->isSuccessful()); var_dump($response->getData());
查询退款 文档
$response = $gateway->queryRefund([ 'refund_id' => '1121218133801201611098791376', ])->send(); var_dump($response->isSuccessful()); var_dump($response->getData());
有关一般用法说明,请参阅主 Omnipay 存储库。
相关
本项目基于 lokielse/omnipay-wechatpay 构建。感谢 Loki Else 的优秀作品。
支持
如果您在使用Omnipay时遇到一般问题,我们建议在 Stack Overflow 上发表。请务必添加 omnipay 标签,以便更容易被找到。
如果您想了解发布公告、讨论项目想法或提出更详细的问题,还可以订阅 邮件列表。
如果您认为您发现了一个bug,请使用 GitHub问题跟踪器 报告它,或者更好的是,fork库并提交一个pull request。