zfuming / omnipay-wxpay
适用于 Omnipay 支付处理库的微信网关
1.0
2017-09-08 09:14 UTC
Requires
- omnipay/common: ~2.0
Requires (Dev)
- omnipay/tests: ~2.0
This package is not auto-updated.
Last update: 2024-09-24 18:19:49 UTC
README
Omnipay PHP 支付处理库的 WxPay 驱动器
WxPay 网关可以从中国境外访问
Omnipay 是一个不依赖于框架的多网关支付处理库,适用于 PHP 5.3+。此包实现了 Omnipay 的银联支持。
安装
Omnipay 通过 Composer 安装。要安装,只需将其添加到您的 composer.json 文件中
"zfuming/omnipay-wxpay": "^1.0",
然后运行 composer 来更新您的依赖关系
$ composer update -vvv
基本用法
此包提供了以下网关
- WxPay(微信通用网关)
- WxPay_App(微信APP支付网关)
- WxPay_Native(微信原生扫码支付网关)
- WxPay_Js(微信网页、公众号、小程序支付网关)
- WxPay_Pos(微信刷卡支付网关)
使用方法
创建订单 文档
//gateways: WxPay_App, WxPay_Native, WxPay_Js, WxPay_Pos $gateway = Omnipay::create('WxPay_App'); $gateway->setAppId($config['app_id']); $gateway->setMchId($config['mch_id']); $gateway->setSubMchId($config['sub_mch_id']); $gateway->setApiKey($config['api_key']); $order = [ 'body' => 'The test order', 'out_trade_no' => date('YmdHis').mt_rand(1000, 9999), 'total_fee' => 1, //=0.01 'spbill_create_ip' => 'ip_address', 'fee_type' => 'CNY' ]; /** * @var Omnipay\WxPay\Message\CreateOrderRequest $request * @var Omnipay\WxPay\Message\CreateOrderResponse $response */ $request = $gateway->purchase($order); $response = $request->send(); //available methods $response->isSuccessful(); $response->getData(); //For debug $response->getAppOrderData(); //For WxPay_App $response->getJsOrderData(); //For WxPay_Js $response->getCodeUrl(); //For Native Trade Type
通知 文档
$gateway = Omnipay::create('WxPay'); $gateway->setAppId($config['app_id']); $gateway->setMchId($config['mch_id']); $gateway->setSubMchId($config['sub_mch_id']); $gateway->setApiKey($config['api_key']); $response = $gateway->completePurchase([ 'request_params' => file_get_contents('php://input') ])->send(); if ($response->isPaid()) { //pay success var_dump($response->getData()); }else{ //pay fail }
查询订单 文档
$response = $gateway->query([ 'transaction_id' => '1217752501201407033233368018', //The wechat trade no ])->send(); var_dump($response->isSuccessful()); var_dump($response->getData());
关闭订单 文档
$response = $gateway->close([ 'out_trade_no' => '201602011315231245', //The merchant trade no ])->send(); var_dump($response->isSuccessful()); var_dump($response->getData());
退款 文档
$gateway->setCertPath($certPath); $gateway->setKeyPath($keyPath); $response = $gateway->refund([ 'transaction_id' => '1217752501201407033233368018', //The wechat trade no 'out_refund_no' => $outRefundNo, 'total_fee' => 1, //=0.01 'refund_fee' => 1, //=0.01 ])->send(); var_dump($response->isSuccessful()); var_dump($response->getData());
查询退款 文档
$response = $gateway->queryRefund([ 'refund_id' => '1217752501201407033233368018', //Your site trade no, not union tn. ])->send(); var_dump($response->isSuccessful()); var_dump($response->getData());
缩短 URL(针对 WxPay_Native)文档
$response = $gateway->shortenUrl([ 'long_url' => $longUrl ])->send(); var_dump($response->isSuccessful()); var_dump($response->getData()); var_dump($response->getShortUrl());
查询 OpenId(针对 WxPay_Pos)文档
$response = $gateway->shortenUrl([ 'auth_code' => $authCode ])->send(); var_dump($response->isSuccessful()); var_dump($response->getData()); var_dump($response->getOpenId());
有关一般使用说明,请参阅主 Omnipay 存储库。