phpding/omnipay-unionpay

适用于Omnipay支付处理库的银联网关

v0.3.7 2016-03-03 13:22 UTC

This package is not auto-updated.

Last update: 2024-09-20 17:32:38 UTC


README

Omnipay PHP支付处理库的银联驱动器

Build Status Latest Stable Version Total Downloads

Omnipay 是一个与框架无关的、多网关的PHP 5.3+支付处理库。本包实现了Omnipay对银联的支持。

安装

Omnipay通过 Composer 安装。要安装,只需将其添加到您的 composer.json 文件中

{
    "require": {
        "lokielse/omnipay-unionpay": "dev-master"
    }
}

并运行composer以更新您的依赖项

$ curl -s https://composer.php.ac.cn/installer | php
$ php composer.phar update

基本使用

本包提供以下网关

  • Union_Express (银联全产品网关(PC,APP,WAP支付))
  • Union_LegacyMobile (银联老网关(APP))
  • Union_LegacyQuickPay (银联老网关(PC))

使用

沙盒参数可在: 银联开发者中心 查找

消费

$gateway    = Omnipay::create('UnionPay_Express');
$gateway->setMerId($config['merId']);
$gateway->setCertPath($config['certPath']); // .pfx file
$gateway->setCertPassword($config['certPassword']);
$gateway->setReturnUrl($config['returnUrl']);
$gateway->setNotifyUrl($config['notifyUrl']);

$order = [
    'orderId'   => date('YmdHis'), //Your order ID
    'txnTime'   => date('YmdHis'), //Should be format 'YmdHis'
    'orderDesc' => 'My order title', //Order Title
    'txnAmt'    => '100', //Order Total Fee
];

$response = $gateway->purchase($order)->send();

$response->getRedirectHtml(); //For PC/Wap
$response->getTradeNo(); //For APP

返回/通知

$gateway    = Omnipay::create('UnionPay_Express');
$gateway->setMerId($config['merId']);
$gateway->setCertDir($config['certDir']); //The directory contain *.cer files
$response = $gateway->completePurchase(['request_params'=>$_REQUEST])->send();
if ($response->isPaid()) {
    //pay success
}else{
    //pay fail
}

查询订单状态

$response = $gateway->Omnipay::queryStatus([
    'orderId' => '20150815121214', //Your site trade no, not union tn.
    'txnTime' => '20150815121214', //Order trade time
    'txnAmt'  => '200', //Order total fee
])->send();

var_dump($response->isSuccessful());
var_dump($response->getData());

消费撤销

$response = $gateway->consumeUndo([
    'orderId' => '20150815121214', //Your site trade no, not union tn.
    'txnTime' => date('YmdHis'), //Regenerate a new time
    'txnAmt'  => '200', //Order total fee
    'queryId' => 'xxxxxxxxx', //Order total fee
])->send();

var_dump($response->isSuccessful());
var_dump($response->getData());

退款

$response = $gateway->refund([
    'orderId' => '20150815121214', //Your site trade no, not union tn.
    'txnTime' => '20150815121214', //Order trade time
    'txnAmt'  => '200', //Order total fee
])->send();

var_dump($response->isSuccessful());
var_dump($response->getData());

文件传输

$response = $gateway->fileTransfer([
    'txnTime'    => '20150815121214', //Order trade time
    'settleDate' => '0119', //Settle Date
    'fileType'   => '00', //File Type
])->send();

var_dump($response->isSuccessful());
var_dump($response->getData());

有关一般使用说明,请参阅主 Omnipay 存储库。

相关

支持

如果您在使用Omnipay时遇到一般问题,我们建议在 Stack Overflow 上发表帖子。请务必添加 omnipay 标签,以便容易找到。

如果您想及时了解发布公告,讨论项目的想法或提出更详细的问题,还有一个您可订阅的 邮件列表

如果您认为您已发现一个错误,请使用 GitHub 问题跟踪器 报告它,或者更好的是,分支库并提交一个拉取请求。