摘要:對(duì)于微信支付訂單以及退款訂單可以根據(jù)微信支付的流水號(hào)進(jìn)行查詢。
payment 項(xiàng)目2.0版本
微信并未提供一個(gè)統(tǒng)一的查詢接口。對(duì)應(yīng)每種查詢均需要不同的api。為了便于大家在項(xiàng)目中使用,忽略細(xì)節(jié)。對(duì)以上三種進(jìn)行了封裝。通過工廠的方式降低調(diào)用成本。
$wxconfig = [ "app_id" => "wxxxx", // 公眾賬號(hào)ID "mch_id" => "xxxx",// 商戶id "md5_key" => "xxxxxx",// md5 秘鑰 "notify_url" => "http://test.helei.com/pay-notify.html", "time_expire" => "14", // 涉及資金流動(dòng)時(shí),需要提供該文件 "cert_path" => dirname(__FILE__) . DIRECTORY_SEPARATOR . "wx" . DIRECTORY_SEPARATOR . "apiclient_cert.pem", "key_path" => dirname(__FILE__) . DIRECTORY_SEPARATOR . "wx" . DIRECTORY_SEPARATOR . "apiclient_key.pem", ]; use PaymentQueryContext; use PaymentCommonPayException; use PaymentConfig; $query = new QueryContext(); // 通過交易號(hào)查詢, 推薦 $data = [ //"order_no" => "2016011402433464",// 商戶訂單號(hào) "transaction_id" => "4007572001201607098672633287",// 微信訂單查詢 微信退款單查詢 //"trans_no" => "1007570439201601142692427764", // 微信批量轉(zhuǎn)款查詢 ]; try { // 微信訂單查詢 $query->initQuery(Config::WEIXIN, $wxconfig); // 微信退款訂單狀態(tài)查詢 //$query->initQuery(Config::WEIXIN_REFUND, $wxconfig); // 微信企業(yè)付款查詢 //$query->initQuery(Config::WEIXIN_TRANS, $wxconfig); $ret = $query->query($data); } catch (PayException $e) { echo $e->errorMessage();exit; }
訂單查詢非常簡(jiǎn)單。對(duì)于微信支付訂單以及退款訂單可以根據(jù)微信支付的流水號(hào)進(jìn)行查詢。對(duì)于微信支付的訂單還可根據(jù)商戶的訂單號(hào)進(jìn)行查詢。但是強(qiáng)烈建議通過微信自身的流水號(hào)進(jìn)行查詢。
對(duì)于批量轉(zhuǎn)款查詢。需要提供再轉(zhuǎn)款時(shí),生產(chǎn)的轉(zhuǎn)款單號(hào)(此單號(hào)是由商家自行生產(chǎn)的)。這里我也蠻迷惑,為什么不提供使用微信返回的轉(zhuǎn)款流水號(hào)進(jìn)行查詢呢?
接下來對(duì)返回值進(jìn)行解釋,以下結(jié)構(gòu)為一個(gè)頂層結(jié)構(gòu)
參數(shù) | 參數(shù)名 | 參數(shù)說明 | 是否必須 |
---|---|---|---|
is_success | 成功標(biāo)識(shí) | 請(qǐng)求是否成功,T:成功,F(xiàn):失敗 | 是 |
error | 錯(cuò)誤提示 | 只有is_success=F時(shí)才返回 | 否 |
response | 響應(yīng)數(shù)據(jù) | 查詢成功后返回的數(shù)據(jù),一個(gè)數(shù)組,is_success=T時(shí)返回 | 否 |
支付訂單中關(guān)于 response 中包含字段的描述
參數(shù) | 參數(shù)名 | 參數(shù)說明 | 是否必須 |
---|---|---|---|
amount | 交易金額 | 本次訂單總金額,單位為元,最多兩位小數(shù) | 是 |
channel | 支付渠道 | 本處取值: wx | 是 |
order_no | 商戶網(wǎng)站唯一訂單號(hào) | 商戶生成的訂單號(hào),必須確保在系統(tǒng)中唯一 | 是 |
buyer_id | 用戶標(biāo)識(shí) | 用戶在商戶appid下的唯一標(biāo)識(shí) | 是 |
trade_state | 交易狀態(tài) | 支付成功與否,可取值:success not_pay | 是 |
transaction_id | 微信交易號(hào) | 微信系統(tǒng)中的交易流水號(hào),可用于查詢訂單狀態(tài) | 是 |
time_end | 交易付款時(shí)間 | 格式為2016-07-28 16:01:01 | 是 |
退款有以下兩點(diǎn)需要注意
交易時(shí)間超過一年的訂單無法提交退款;
微信支付退款支持單筆交易分多次退款,多次退款需要提交原支付訂單的商戶訂單號(hào)和設(shè)置不同的退款單號(hào)。一筆退款失敗后重新提交,要采用原來的退款單號(hào)??偼丝罱痤~不能超過用戶實(shí)際支付金額。
由于一筆支付訂單,可能存在多筆退單的情況,因此退款記錄將返回一個(gè)數(shù)組
退款訂單中關(guān)于 response 中包含字段的描述
參數(shù) | 參數(shù)名 | 參數(shù)說明 | 是否必須 |
---|---|---|---|
amount | 交易金額 | 本次訂單總金額,單位為元,最多兩位小數(shù) | 是 |
order_no | 商戶網(wǎng)站唯一訂單號(hào) | 商戶生成的訂單號(hào),必須確保在系統(tǒng)中唯一 | 是 |
transaction_id | 微信交易號(hào) | 微信系統(tǒng)中的交易流水號(hào),可用于查詢訂單狀態(tài) | 是 |
refund_data | 退款數(shù)據(jù) | 其結(jié)構(gòu)是一個(gè)數(shù)組,每一個(gè)元素包含一個(gè)退單信息 | 是 |
refund_data 中包含字段的描述
參數(shù) | 參數(shù)名 | 參數(shù)說明 | 是否必須 |
---|---|---|---|
refund_no | 商戶退款單號(hào) | 商戶退款單號(hào) | 是 |
refund_id | 微信退款單號(hào) | 微信退款單號(hào) | 是 |
refund_channel | 退款渠道 | ORIGINAL—原路退款 BALANCE—退回到余額 | 是 |
refund_fee | 退款金額 | 退款總金額,單位為元,可以做部分退款 | 是 |
refund_status | 退款狀態(tài) | SUCCESS—退款成功 FAIL—退款失敗 PROCESSING—退款處理中 NOTSURE—未確定,需要商戶原退款單號(hào)重新發(fā)起 CHANGE—轉(zhuǎn)入代發(fā) | 是 |
recv_accout | 退款入賬賬戶 | 退款入賬賬戶 | 是 |
"trans_id" => $data["detail_id"],// 付款單號(hào) "trans_status" => $data["status"],// 轉(zhuǎn)賬狀態(tài) "reason" => $data["reason"],// 失敗原因 "buyer_id" => $data["openid"], "trans_name" => $data["transfer_name"],// 收款用戶姓名 "trans_time" => $data["transfer_time"], "desc" => $data["desc"],// 付款描述
參數(shù) | 參數(shù)名 | 參數(shù)說明 | 是否必須 |
---|---|---|---|
amount | 付款金額 | 付款金額 單位元 | 是 |
order_no | 商戶單號(hào) | 商戶使用查詢API填寫的單號(hào)的原路返回. | 是 |
trans_id | 付款單號(hào) | 調(diào)用企業(yè)付款A(yù)PI時(shí),微信系統(tǒng)內(nèi)部產(chǎn)生的單號(hào) | 是 |
trans_status | 轉(zhuǎn)賬狀態(tài) | SUCCESS:轉(zhuǎn)賬成功 FAILED:轉(zhuǎn)賬失敗 PROCESSING:處理中 | 是 |
reason | 失敗原因 | 如果失敗則有失敗原因 | 否 |
buyer_id | 收款用戶openid | 收款用戶openid | 是 |
trans_name | 收款用戶姓名 | 真實(shí)姓名,如果是需要實(shí)名驗(yàn)證,則會(huì)返回 | 否 |
trans_time | 轉(zhuǎn)賬時(shí)間 | 發(fā)起轉(zhuǎn)賬的時(shí)間 格式:2015-04-21 20:00:00 | 是 |
desc | 付款描述 | 付款時(shí)候的描述 | 是 |
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/21899.html
摘要:項(xiàng)目版本微信的退款操作,通過封裝與前面支付寶退款除了配置文件,基本一樣。微信僅能每次退款筆如果想要實(shí)現(xiàn)一次退訂多筆訂單,可在客戶端通過循環(huán)來處理。 payment 項(xiàng)目2.0版本 微信的退款操作,通過封裝與前面支付寶退款除了配置文件,基本一樣。 退款代碼如下: use PaymentRefundContext; use PaymentCommonPayException; use P...
摘要:是金額企業(yè)付款金額,單位為元是企業(yè)付款描述信息企業(yè)付款操作說明信息。 payment 項(xiàng)目2.0版本 這個(gè)功能與支付寶的批量付款到支付寶帳號(hào)功能類似。但是當(dāng)前支付寶這個(gè)接口已經(jīng)停止審核了。 當(dāng)前很多提問平臺(tái)就用到了這兩個(gè)平臺(tái)。比如[來問醫(yī)生],你提的問題如果被人看了。醫(yī)生得0.5元,你得0.5元。然后累積夠1元后,[來問醫(yī)生]就會(huì)通過微信的企業(yè)付款功能給你的微信余額增加1元。 代碼調(diào)用...
摘要:注意交易時(shí)間超過一年的訂單無法提交退款微信支付退款支持單筆交易分多次退款,多次退款需要提交原支付訂單的商戶訂單號(hào)和設(shè)置不同的退款單號(hào)。 本文是【淺析微信支付】系列文章的第八篇,主要講解商戶如何處理微信申請(qǐng)退款、退款回調(diào)、查詢退款接口,其中有一些坑的地方,會(huì)著重強(qiáng)調(diào)。 淺析微信支付系列已經(jīng)更新七篇了喲~,沒有看過的朋友們可以看一下哦。 淺析微信支付:查詢訂單和關(guān)閉訂單 淺析微信支付:支...
摘要:本文是淺析微信支付系列文章的第九篇,主要講解商戶下載對(duì)賬單接口和資金賬單接口的實(shí)現(xiàn)和一些注意事項(xiàng)。注意微信側(cè)未成功下單的交易不會(huì)出現(xiàn)在對(duì)賬單中。 本文是【淺析微信支付】系列文章的第九篇,主要講解商戶下載對(duì)賬單接口和資金賬單接口的實(shí)現(xiàn)和一些注意事項(xiàng)。 淺析微信支付系列已經(jīng)更新九篇了喲~,沒有看過的朋友們可以看一下哦。 淺析微信支付:申請(qǐng)退款、退款回調(diào)接口、查詢退款 淺析微信支付:查詢訂...
摘要:支付流程以上是微信支付的流程用戶進(jìn)入選擇商品進(jìn)行購買,在內(nèi)部結(jié)算時(shí)生成用戶本系統(tǒng)訂單待支付狀態(tài),此時(shí)返回訂單信息與支付方式列表用戶確認(rèn)金額無誤,并選擇支付方式。 支付流程 showImg(https://segmentfault.com/img/bVytNT?w=894&h=1042); 以上是微信app支付的流程: 用戶進(jìn)入app選擇商品進(jìn)行購買,在app內(nèi)部結(jié)算時(shí)生成用戶本系統(tǒng)訂...
閱讀 3981·2021-11-16 11:44
閱讀 5238·2021-10-09 09:54
閱讀 2039·2019-08-30 15:44
閱讀 1695·2019-08-29 17:22
閱讀 2768·2019-08-29 14:11
閱讀 3403·2019-08-26 13:25
閱讀 2334·2019-08-26 11:55
閱讀 1604·2019-08-26 10:37