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