LNMP集合PHP实战

在laravel5中使用银联支付

2017-04-11  本文已影响216人  hyperbolaa

GitHub地址

https://github.com/hyperbolaa/Unionpay

交易类型

产品类型:bizType

接入类型:accessType

渠道类型:channelType

应答码:respCode

备注

version5.0.0 与 version5.1.0 验签方式不一样

安装

composer require hyperbolaa/unionpay dev-master

laravel 配置

 'providers' => [
     // ...
     Hyperbolaa\Unionpay\UnionpayServiceProvider::class,
 ]

生成配置文件

运行 `php artisan vendor:publish` 命令,
发布配置文件到你的项目中。

app代码使用

$unionpay = app('unionpay.mobile');
$unionpay->setOrderId('order_id');
$unionpay->setTxnAmt('order_amount');
$unionpay->setTxnTime('req_time');

//返回签名后的支付参数给移动端的sdk-》{539512046523081531300}
return $unionpay->consume();

wap代码使用

$unionpay = app('unionpay.wap');
$unionpay->setOrderId('order_id');
$unionpay->setTxnAmt('order_amount');
$unionpay->setTxnTime('req_time');

//返回一个表单
return $unionpay->consume();

异步通知

    public function unionpayNotify()
    {
        if (! app('unionpay.mobile')->verify()) {
            Log::notice('unionpay notify post data verification fail.', [
                'data' => Request::instance()->getContent()
            ]);
            return 'fail';
        }

        // 判断通知类型。
        if (Input::get('respCode') == '00') {
                // TODO: 支付成功,取得订单号进行其它相关操作。
                Log::debug('unionpay notify get data verification success.', [
                    'out_trade_no'  => Input::get('orderId'),
                    'trade_no'      => Input::get('queryId')
                ]);
        }

        return 'success';
    }

Related

上一篇 下一篇

猜你喜欢

热点阅读