PHP接入支付寶單筆訂單查詢接口

payment 項目2.0版本 php

巴西奧運會來了,恰好我又是作體育行業的互聯網。哎!這個月又要加班成狗了。最近遇到好多莫名其妙的問題,待我忙完這段,再跟你們分享下。今天仍是繼續說說 Payment項目
今天主要說說支付寶訂單查詢接口。html

接口調用

廢話廢話很少說。直接上支付寶訂單查詢的代碼。微信的訂單查詢與此相似。後續也會更新文檔。git

// 支付寶配置信息
$aliconfig = [
    'partner'   => '2088xxxxx',
    'md5_key'   => 'xxxxxxxxxxxx',
    'rsa_private_key'   => dirname(__FILE__) . '/rsa_private_key.pem',
    "notify_url"    => 'http://test.helei.com/pay-notify.html',
    "return_url"    => 'http://test.helei.com/return-url.html',
    "time_expire"    => '14',
];


$data = [
    // 經過支付寶交易號查詢,  推薦  效率更高
    'transaction_id'    => '2016011421001004330041239366',// 支付寶
    
    // 經過訂單號查詢
    'order_no'    => '2016011402433464',// 支付寶
];

$query = new QueryContext();

try {
    // 支付寶查詢
    $query->initQuery(Config::ALI, $aliconfig);
    $ret = $query->query($data);

} catch (PayException $e) {
    echo $e->errorMessage();exit;
}

var_dump($ret);

很是簡單,只須要提供支付寶的流水號,或者商家本身生成的訂單號,就可完成訂單詳情的查詢,固然前提是,依然要去簽約這個接口(以爲支付寶真扯淡,都可以支付了,爲何查詢還要單獨簽約?這一點微信比它強)github

若是同時提供了 transaction_idorder_no 這兩個參數,會優先使用 transaction_id ,由於他的效率要高的多。數組

代碼完成了下面分別解釋下請求的參數。以及返回參數。關於支付寶的配置參數,請參考 PHP接入支付寶手機網站支付、移動支付接口微信

請求參數

查詢訂單的參數很是簡單。這裏可以查詢的僅指:支付成功後的訂單異步

參數 參數名 參數說明 是否必須
transaction_id 支付寶流水號 支付成功後,異步通知中會返回 二選一
order_no 商戶訂單號 商戶生成的惟一訂單號 二選一

對於上表中的數據,兩個字段二選一便可。推薦使用 transaction_id ,該字段查詢效率更高。若是兩個字段同時提供,會優先使用 transaction_id網站

請求後,程序會向支付寶進行查詢。查詢完成後,會將返回的數據作必定處理而後返回給客戶端。url

返回參數

查詢存在兩種狀況,失敗,成功,分別對返回字段含義進行說明。code

參數 參數名 參數說明 是否必須
is_success 成功標識 請求是否成功,T:成功,F:失敗
error 錯誤提示 只有is_success=F時才返回
response 響應數據 查詢成功後返回的數據,一個數組,is_success=T時返回

關於 response 中包含字段的描述

參數 參數名 參數說明 是否必須
subject 商品名稱 訂單的關鍵字
body 商品描述 提交訂單時的body值
amount 交易金額 本次訂單總金額
channel 支付渠道 本處取值: ali
order_no 商戶網站惟一訂單號 商戶生成的訂單號,必須確保在系統中惟一
buyer_id 買家支付寶帳戶號 能夠是Email或手機號碼。
trade_state 交易狀態 支付成功與否,可取值:success not_pay
transaction_id 支付寶交易號 支付寶系統中的交易流水號,可用於查詢訂單狀態
time_end 交易付款時間 格式爲2016-07-28 16:01:01

針對查詢返回的數據,調用者可進行相關的業務處理。若是須要更多信息可聯繫我進行定製開發,也可自行更改代碼完成。

相關文章
相關標籤/搜索