在laravel5中使用銀聯支付

GitHub地址

https://github.com/hyperbolaa/Unionpay

交易類型

  • 00:查詢交易,
  • 01:消費,
  • 02:預授權,
  • 03:預授權完成,
  • 04:退貨,
  • 05:圈存,
  • 11:代收,
  • 12:代付,
  • 13:賬單支付,
  • 14:轉賬(保留),
  • 21:批量交易,
  • 22:批量查詢,
  • 31:消費撤銷,
  • 32:預授權撤銷,
  • 33:預授權完成撤銷,
  • 71:余額查詢,
  • 72:實名認證-建立綁定關系,
  • 73:賬單查詢,
  • 74:解除綁定關系,
  • 75:查詢綁定關系,
  • 77:發送短信驗證碼交易,
  • 78:開通查詢交易,
  • 79:開通交易,
  • 94:IC卡腳本通知 ,
  • 95:查詢更新加密公鑰證書

產品類型:bizType

  • 依據實際業務場景填寫 默認取值:000000 具體取值范圍:
  • 000201:B2C 網關支付
  • 000301:認證支付 2.0
  • 000302:評級支付
  • 000401:代付
  • 000501:代收
  • 000601:賬單支付
  • 000801:跨行收單
  • 000901:綁定支付
  • 001001:訂購
  • 000202:B2B

接入類型:accessType

  • 0:商戶直接接入
  • 1:收單機構接入
  • 2:平臺商接入

渠道類型:channelType

  • 05:語音
  • 07:互聯網
  • 08:移動
  • 16:數字機頂盒

應答碼:respCode

  • 00:成功
  • 01-09:銀聯全渠道系統原因導致的錯誤
  • 10-29:商戶端上送保溫格式檢查導致的錯誤
  • 30-59:商戶端相關業務檢查導致的錯誤
  • 60-89:持卡人/發卡行 相關問題導致的錯誤
  • 90-99:預留

備注

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

  • Ylpay 基于laravel5的POS通支付
  • Alipay 基于laravel5的支付寶支付
  • Wechatpay 基于laravel5的微信支付
  • Alisms 基于laravel5的阿里云短信
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容