Exemplo n.º 1
0
$param['orderAmount'] = 110;
//交易金额
$param['orderNumber'] = date('YmdHis') . strval(mt_rand(100, 999));
//订单号,必须唯一(不能与原交易相同)
$param['orderTime'] = date('YmdHis');
//交易时间, YYYYmmhhddHHMMSS
$param['orderCurrency'] = quickpay_conf::CURRENCY_CNY;
//交易币种,
$param['customerIp'] = $_SERVER['REMOTE_ADDR'];
//用户IP
$param['frontEndUrl'] = "";
//前台回调URL, 后台交易可为空
$param['backEndUrl'] = "http://www.unionpay.com/exa/back_notify.php";
//后台回调URL
//其余可填空的参数可以不填写
//提交
$pay_service = new quickpay_service($param, quickpay_conf::BACK_PAY);
$ret = $pay_service->post();
//同步返回(表示服务器已收到后台接口请求), 处理成功与否以后台通知为准;或使用主动查询
$response = new quickpay_service($ret, quickpay_conf::RESPONSE);
var_dump($response);
if ($response->get('respCode') != quickpay_service::RESP_SUCCESS) {
    //错误处理
    $err = sprintf("Error: %d => %s", $response->get('respCode'), $response->get('respMsg'));
    throw new Exception($err);
}
//后续处理
$arr_ret = $response->get_args();
var_dump($arr_ret);
echo "后台交易返回:\n" . var_export($arr_ret, true);
//此行仅用于测试输出
Exemplo n.º 2
0
require_once '../quickpay_service.php';
//* 测试数据
$transType = quickpay_conf::CONSUME;
$orderNumber = "20130329163920172";
$orderTime = "20130329163920172";
// */
//需要填入的部分
$param['transType'] = $transType;
//交易类型
$param['orderNumber'] = $orderNumber;
//订单号
$param['orderTime'] = $orderTime;
//订单时间
//提交查询
$query = new quickpay_service($param, quickpay_conf::QUERY);
$ret = $query->post();
//返回查询结果
$response = new quickpay_service($ret, quickpay_conf::RESPONSE);
//后续处理
$arr_ret = $response->get_args();
echo "查询请求返回:<pre>\n" . var_export($arr_ret, true) . "</pre>";
$respCode = $response->get('respCode');
$queryResult = $response->get('queryResult');
if ($queryResult == quickpay_service::QUERY_FAIL) {
    echo "交易失败[respCode:{$respCode}]!\n";
    //更新数据库, 设置为交易失败
} else {
    if ($queryResult == quickpay_service::QUERY_INVALID) {
        //出错
        echo "不存在此交易!\n";
    } else {