tomato-technologies / tomato-omipay
OmiPay for Laravel项目
v1.0.2
2019-01-07 06:34 UTC
Requires
- illuminate/contracts: 5.2.x|5.3.x|5.4.x|5.5.x|5.6.x|5.7.x
- illuminate/queue: 5.2.x|5.3.x|5.4.x|5.5.x|5.6.x|5.7.x
- illuminate/support: 5.2.x|5.3.x|5.4.x|5.5.x|5.6.x|5.7.x
This package is not auto-updated.
Last update: 2024-09-24 17:02:02 UTC
README
安装
composer require tomato-technologies/tomato-omipay
Laravel 5.5使用包自动发现,因此不需要您手动添加ServiceProvider。
Laravel 5.5+
如果您不使用自动发现,请在config/app.php中的providers数组中添加ServiceProvider。
Tomato\OmiPay\ServiceProvider::class,
如果您想更容易地访问Pusher或Event类,请在app.php中的外观中添加以下内容
'TomatoOmiPay' => Tomato\OmiPay\Facade::class,
使用方法
在使用之前,请记得在.env文件中设置您的OMIPAY_MERCHANT_NO
和OMIPAY_MERCHANT_KEY
。商户号应包含"M",例如:"000034"。
如果您想获取更多关于此包装器的配置,可以通过运行以下Artisan命令之一将配置文件拉入您的应用程序
php artisan vendor:publish --provider="Tomato\OmiPay\ServiceProvider"
示例代码
创建QR订单
$qrRequest=new \Tomato\OmiPay\Requests\Payment\QROrderRequest(); $qrRequest->setOrderName("Test Product 1"); $qrRequest->setCurrency("AUD"); $qrRequest->setAmount(1*100);//1 dollar $qrRequest->setNotifyUrl(route("opmipay-notification")); $qrRequest->setOutOrderNo("10001"); $qrRequest->setPlatform("ALIPAY"); $result=\TomatoOmiPay::qrOrder($qrRequest); var_dump($result);
您将在var_dump($result)
中看到以下内容,然后使用pay_url
重定向用户进行支付
array (size=8)
'order_no' => string 'TR1812060010011263009795' (length=24)
'qrcode' => string 'https://qr.alipay.com/bax06022po8u7fm93zxp200b' (length=46)
'pay_url' => string 'https://www.omipay.com.cn/Omipay/H5Pay/QRcode_Pay.html?paycode=TR1812060010011263009795&m_number=0010011263&platform=WECHATPAY×tamp=1544088240364&nonce_str=jinwuwc8hyzi67itxwf9x0fjxjz00q&sign=F49FC0DFFB81EDF639AB8BF4A0FE7252' (length=229)
'platform' => string 'ALIPAY' (length=6)
'error_msg' => null
'msg' => null
'success' => boolean true
'return_code' => string 'SUCCESS' (length=7)
如何接收OmiPay通知的示例
只有经过验证的请求会在此事件上触发,因此不需要检查签名。
在您的EventServiceProvider中监听omipay.got-notification
并将其映射到您自己的处理程序。
'omipay.got-notification'=>[ 'App\Http\Controllers\Site\HomeController@onOmipayNotice' ],
以下是示例处理程序,$data
是一个包含所有请求数据的数组(https://www.omipay.com.au/Help/API_new.html#nine)。
public function onOmipayNotice($data=[]){ \Log::info(json_encode($data)); }
变更日志
2018年12月19日更新
对于任何支持"redirect_url"的Omipay订单,此包将包括"redirect_url"到"pay_url",例如
之前
$qrRequest=new \Tomato\OmiPay\Requests\Payment\QROrderRequest(); $qrRequest->setOrderName("Test Product 1"); $qrRequest->setCurrency("AUD"); $qrRequest->setAmount(1*100);//1 dollar $qrRequest->setNotifyUrl(route("opmipay-notification")); $qrRequest->setOutOrderNo("10001"); $qrRequest->setPlatform("ALIPAY"); $result=\TomatoOmiPay::qrOrder($qrRequest); $redirectURL=route("thank-you-page",["order_id"=>10001]); $directCusomterToURL=data_get($result,"pay_url")."&redirect_url=".urlencode($redirectURL);
之后
$qrRequest=new \Tomato\OmiPay\Requests\Payment\QROrderRequest(); $qrRequest->setOrderName("Test Product 1"); $qrRequest->setCurrency("AUD"); $qrRequest->setAmount(1*100);//1 dollar $qrRequest->setNotifyUrl(route("opmipay-notification")); $qrRequest->setRedirectUrl(route("thank-you-page",["order_id"=>10001])) $qrRequest->setOutOrderNo("10001"); $qrRequest->setPlatform("ALIPAY"); $result=\TomatoOmiPay::qrOrder($qrRequest); $directCusomterToURL=data_get($result,"pay_url");