3. 订单查询
订单查询的参数配置如下
////获取商户订单号
$out_trade_no = trim($_POST['out_trade_no']);
//第三方应用授权令牌,商户授权系统商开发模式下使用
$appAuthToken = "";//根据真实值填写
//构造查询业务请求参数对象
$queryContentBuilder = new AlipayTradeQueryContentBuilder();
$queryContentBuilder->setOutTradeNo($out_trade_no);
$queryContentBuilder->setAppAuthToken($appAuthToken);
//初始化类对象,调用queryTradeResult方法获取查询应答
$queryResponse = new AlipayTradeService($config);
$queryResult = $queryResponse->queryTradeResult($queryContentBuilder);
//根据查询返回结果状态进行业务处理
switch ($queryResult->getTradeStatus()){
case "SUCCESS":
echo "支付宝查询交易成功:"."<br>--------------------------<br>";
print_r($queryResult->getResponse());
break;
case "FAILED":
echo "支付宝查询交易失败或者交易已关闭!!!"."<br>--------------------------<br>";
if(!empty($queryResult->getResponse())){
print_r($queryResult->getResponse());
}
break;
case "UNKNOWN":
echo "系统异常,订单状态未知!!!"."<br>--------------------------<br>";
if(!empty($queryResult->getResponse())){
print_r($queryResult->getResponse());
}
break;
default:
echo "不支持的查询状态,交易返回异常!!!";
break;
}
最终提交的url如下
https://openapi.alipay.com/gateway.do?app_id=2016061501500000&version=1.0&format=json&sign_type=RSA&method=alipay.trade.query×tamp=2016-08-26+18%3A27%3A07&auth_token=&alipay_sdk=alipay-sdk-php-20160411&terminal_type=&terminal_info=&prod_code=¬ify_url=&charset=UTF-8&app_auth_token=&sign=eIuYJtes95quAN3X9eXbQzBa%2FCvm5QgQ0ToUsS8MSkCjhZACYpnU7ZT5MuD31lPZPFHVEjCKsdWiq4tuNtJPFPxirg7pkTiT09C%2Bz8PsUA844Y7hjkkX%2B4CVZcGtO11m3Ap0JECrtZW8hhJTE9bPY1v43X2BSL5Cp3Ulpac1FsM%3D
发送的json数据如下:
{
"out_trade_no":"qrpay20160826053813582"
}
接收到的数据如下
{
"alipay_trade_query_response":{
"code":"10000",
"msg":"Success",
"buyer_logon_id":"118***@qq.com",
"buyer_pay_amount":"0.01",
"buyer_user_id":"2088002364008751",
"fund_bill_list":[
{
"amount":"0.01",
"fund_channel":"ALIPAYACCOUNT"
}
],
"invoice_amount":"0.01",
"open_id":"20880044751374809757987911112575",
"out_trade_no":"qrpay20160826053813582",
"point_amount":"0.00",
"receipt_amount":"0.01",
"send_pay_date":"2016-08-26 17:38:58",
"total_amount":"0.01",
"trade_no":"2016082621001004750239053830",
"trade_status":"TRADE_SUCCESS"
},
"sign":"E2MxjdAhW/EqRFNkZgy/Y//dA5Cmb54Hnqa0cjBz+ZcFTULi1lvFms93onP7cpVK/fI7YxbkZTKBPk29o4aeWKXlSYCrT92domAyqahzYCA7/5A3Msc/awALYrFOdWyJJdlncWdFRN9hx52iVRIjxvLJ0hIMVIQqEDavG28HPbo="
}
4. 订单退款
订单退款的参数配置如下
$out_trade_no = trim($_POST['out_trade_no']);
$refund_amount = trim($_POST['refund_amount']);
$out_request_no = trim($_POST['out_request_no']);
//第三方应用授权令牌,商户授权系统商开发模式下使用
$appAuthToken = "";//根据真实值填写
//创建退款请求builder,设置参数
$refundRequestBuilder = new AlipayTradeRefundContentBuilder();
$refundRequestBuilder->setOutTradeNo($out_trade_no);
$refundRequestBuilder->setRefundAmount($refund_amount);
$refundRequestBuilder->setOutRequestNo($out_request_no);
$refundRequestBuilder->setAppAuthToken($appAuthToken);
//初始化类对象,调用refund获取退款应答
$refundResponse = new AlipayTradeService($config);
$refundResult = $refundResponse->refund($refundRequestBuilder);
//根据交易状态进行处理
switch ($refundResult->getTradeStatus()){
case "SUCCESS":
echo "支付宝退款成功:"."<br>--------------------------<br>";
print_r($refundResult->getResponse());
break;
case "FAILED":
echo "支付宝退款失败!!!"."<br>--------------------------<br>";
if(!empty($refundResult->getResponse())){
print_r($refundResult->getResponse());
}
break;
case "UNKNOWN":
echo "系统异常,订单状态未知!!!"."<br>--------------------------<br>";
if(!empty($refundResult->getResponse())){
print_r($refundResult->getResponse());
}
break;
default:
echo "不支持的交易状态,交易返回异常!!!";
break;
}







