本文介紹微信支付中出貨通知功能的實作。
一、出貨通知
為了更好追蹤訂單的情況,需要第三方在收到最終支付通知之後,呼叫出貨通知API告知微信後臺該訂單的出貨狀態(tài)。
出貨時間限制:虛擬、服務類別24小時內(nèi),實體類別72小時內(nèi)。
請在收到付款通知後,準時出貨,並使用出貨通知介面將相關資訊同步到微信後臺。若平臺在規(guī)定時間內(nèi)未收到,將視為出貨超時處理。
出貨通知API的URL為:
https://api.weixin.qq.com/pay/delivernotify?access_token=xxxxxx
URL中的參數(shù)只包含目前微信公眾平臺憑證access_token,而出貨通知的真正的資料是放在PostData中的,格式如下:
{ "appid" : "wwwwb4f85f3a797777", "openid" : "oX99MDgNcgwnz3zFN3DNmo8uwa-w", "transid" : "111112222233333", "out_trade_no" : "555666uuu", "deliver_timestamp" : "1369745073", "deliver_status" : "1", "deliver_msg" : "ok", "app_signature" : "53cca9d47b883bd4a5c85a9300df3da0cb48565c", "sign_method" : "sha1" }
上述內(nèi)容參數(shù)說明如表6-12所示。
參數(shù) | 說明 |
appid | #公眾平臺帳號的AppId; |
openid | 販買用戶的OpenId,這個已經(jīng)放在最終支付結(jié)果通知的PostData裡了; |
transid | 交易單號; |
out_trade_no | 第三方訂單號碼; |
deliver_timestamp | 出貨時間戳,這裡指的是Linux時間戳記; |
deliver_status | 出貨狀態(tài),1顯示成功,0顯示失敗,失敗時需要在deliver_msg填上失敗原因; |
deliver_msg | 出貨狀態(tài)資訊,失敗時可以填入UTF8編碼的錯諢提示訊息,例如「該商品已退款」; |
#app_signature | ##根據(jù)支付簽名(paySign)產(chǎn)生方法中所講的簽章方式產(chǎn)生的,參加簽章欄位為:appid、appkey、openid、transid、out_trade_no、deliver_timestamp、deliver_status、deliver_msg; |
##sign_method | 簽名方法(不計入簽名生成); |
#表6-12 出貨通知參數(shù)說明
微信公眾平臺在校驗ok之後,會回傳資料表示是否通知成功,例如:{"errcode":0,"errmsg":"ok"}如果有異常,會在errcode和errmsg描述出來,如果成功errcode就為0。
?
二、程式實作
程式中的某些參數(shù)來自本部落格前面的微信支付開發(fā)資料。讀者請參考運行
<?php include_once("WxPayHelper.php"); //1. 獲取access token $appid = "wx0000000000000000"; $appsecret = "e76050733ce76050733ce76050733cdd"; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret"; $result = https_request($url); $jsoninfo = json_decode($result, true); $access_token = $jsoninfo["access_token"]; //2.準備參數(shù) $deliver_timestamp = time(); //2.1構(gòu)造最麻煩的app_signature $obj['appid'] = $appid; $obj['appkey'] = "8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6k"; $obj['openid'] = "o0pk9uIVnlY-fJkzFKEbQ6LJ4cFc"; $obj['transid'] = "1218614901201405273313473135"; $obj['out_trade_no'] = "JfuKdiBig4zZnE4n"; $obj['deliver_timestamp'] = $deliver_timestamp; $obj['deliver_status'] = "1"; $obj['deliver_msg'] = "ok"; $WxPayHelper = new WxPayHelper(); //get_biz_sign函數(shù)受保護,需要先取消一下,否則會報錯 $app_signature = $WxPayHelper->get_biz_sign($obj); //3. 將構(gòu)造的json提交給微信服務器,查詢 $jsonmenu = ' { "appid" : "'.$obj['appid'].'", "openid" : "'.$obj['openid'].'", "transid" : "'.$obj['transid'].'", "out_trade_no" : "'.$obj['out_trade_no'].'", "deliver_timestamp" : "'.$deliver_timestamp.'", "deliver_status" : "'.$obj['deliver_status'].'", "deliver_msg" : "'.$obj['deliver_msg'].'", "app_signature" : "'.$app_signature.'", "sign_method" : "sha1" }'; $url = "https://api.weixin.qq.com/pay/delivernotify?access_token=".$access_token; $result = https_request($url, $jsonmenu); var_dump($result); function https_request($url, $data = null){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($data)){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); return $output; }
string(27) "{"errcode":0,"errmsg":"ok"}"######## ###########?更多微信支付開發(fā)出貨通知?相關文章請追蹤PHP中文網(wǎng)! ###

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP是一種開源的腳本語言,廣泛應用於網(wǎng)頁開發(fā)和伺服器端編程,尤其在微信開發(fā)中得到了廣泛的應用。如今,越來越多的企業(yè)和開發(fā)者開始使用PHP進行微信開發(fā),因為它成為了真正的易學易用的開發(fā)語言。在微信開發(fā)中,訊息的加密和解密是一個非常重要的問題,因為它們涉及資料的安全性。對於沒有加密和解密方式的消息,駭客可以輕鬆取得其中的數(shù)據(jù),對用戶造成威脅

在微信公眾號開發(fā)中,投票功能經(jīng)常被運用。投票功能是讓使用者快速參與互動的好方式,也是舉辦活動和調(diào)查意見的重要工具。本文將為您介紹如何使用PHP實作微信投票功能。在取得微信公眾號授權(quán)首先,你需要取得微信公眾號的授權(quán)。在微信公眾平臺上,你需要設定微信公眾號碼的api地址、官方帳號和公眾號碼對應的token。在我們使用PHP語言開發(fā)的過程中,我們需要使用微信官方提供的PH

隨著微信的普及,越來越多的企業(yè)開始將其作為行銷工具。而微信群發(fā)功能,則是企業(yè)進行微信行銷的重要手段之一。但是,如果只依靠手動發(fā)送,對於行銷人員來說是一件極為費時費力的工作。所以,開發(fā)一款微信群發(fā)工具就顯得格外重要。本文將介紹如何使用PHP開發(fā)微信群發(fā)工具。一、準備工作開發(fā)微信群發(fā)工具,我們需要掌握以下幾個技術點:PHP基礎知識微信公眾平臺開發(fā)開發(fā)工具:Sub

微信是目前全球用戶規(guī)模最大的社群平臺之一,隨著行動網(wǎng)路的普及,越來越多的企業(yè)開始意識到微信行銷的重要性。在進行微信行銷時,客服服務是至關重要的一環(huán)。為了更好地管理客服聊天窗口,我們可以藉助PHP語言進行微信開發(fā)。一、PHP微信開發(fā)簡介PHP是一種開源的伺服器端腳本語言,廣泛用於Web開發(fā)領域。結(jié)合微信公眾平臺提供的開發(fā)接口,我們可以使用PHP語言進行微信

在微信公眾號開發(fā)中,使用者標籤管理是一個非常重要的功能,可以讓開發(fā)者更了解和管理自己的使用者。本篇文章將介紹如何使用PHP實作微信使用者標籤管理功能。一、取得微信用戶openid在使用微信用戶標籤管理功能之前,我們首先需要取得用戶的openid。在微信公眾號開發(fā)中,透過使用者授權(quán)的方式取得openid是比較常見的做法。在使用者授權(quán)完成後,我們可以透過以下程式碼取得用

隨著微信成為了人們生活中越來越重要的通訊工具,其敏捷的訊息傳遞功能迅速受到廣大企業(yè)和個人的青睞。對企業(yè)而言,將微信發(fā)展為一個行銷平臺已經(jīng)成為趨勢,而微信開發(fā)的重要性也逐漸凸顯。在其中,群發(fā)功能更是被廣泛使用,那麼,作為PHP程式設計師,如何實現(xiàn)群發(fā)訊息發(fā)送記錄呢?以下將為大家簡單介紹一下。 1.了解微信公眾號相關開發(fā)知識在了解如何實現(xiàn)群發(fā)訊息發(fā)送記錄之前,我

如何使用PHP實現(xiàn)微信公眾號開發(fā)微信公眾號已經(jīng)成為了許多企業(yè)推廣和互動的重要管道,而PHP作為常用的Web語言,也可以用來進行微信公眾號的開發(fā)。本文將介紹使用PHP實現(xiàn)微信公眾號開發(fā)的具體步驟。第一步:取得微信公眾號的開發(fā)者帳號在開始微信公眾號開發(fā)之前,需要先去申請一個微信公眾號的開發(fā)者帳號。具體的註冊流程可參考微信公眾平臺的官方網(wǎng)

隨著網(wǎng)路和行動智慧型裝置的發(fā)展,微信成為了社交和行銷領域不可或缺的一部分。在這個越來越數(shù)位化的時代,如何使用PHP進行微信開發(fā)已經(jīng)成為了許多開發(fā)者的關注點。本文主要介紹如何使用PHP進行微信發(fā)展的相關知識點,以及其中的一些技巧和注意事項。一、開發(fā)環(huán)境準備在進行微信開發(fā)之前,首先需要準備好對應的開發(fā)環(huán)境。具體來說,需要安裝PHP的運作環(huán)境,以及微信公眾平臺提
