1. Bestellabfrage
Aus technischen Gründen kann es sein, dass der H?ndler die endgültige Zahlungsbenachrichtigung nicht innerhalb der erwarteten Zeit erh?lt. Zu diesem Zeitpunkt kann der H?ndler den detaillierten Zahlungsstatus der Bestellung abfragen über diese API.
Die URL der Bestellabfrage-API lautet:
https://api.weixin.qq.com/pay/orderquery?access_token=xxxxxx
Die Parameter in der Die URL enth?lt derzeit nur die Anmeldeinformationen der ?ffentlichen WeChat-Plattform access_token und die tats?chlichen Daten der Bestellabfrage werden in PostData abgelegt. Das Format lautet wie folgt:
{ ????"appid"?:?"wwwwb4f85f3a797777", ????"package"?:?"out_trade_no=11122&partner=1900090055&sign=4e8d0df3da0c3d0df38f", ????"timestamp"?:?"1369745073", ????"app_signature"?:?"53cca9d47b883bd4a5c85a9300df3da0cb48565c", ????"sign_method"?:?"sha1"}
Die oben genannten Inhaltsparameter werden in der angezeigten Tabelle erl?utert.
|
Beschreibung | ||||||||||||
appid |
AppId des ?ffentlichen Plattformkontos; | ||||||||||||
Paket |
Fragen Sie die wichtigsten Informationsdaten der Bestellung ab, einschlie?lich der eindeutigen Bestellnummer des Drittanbieters out_trade_no, des Tenpay-H?ndleridentifikationspartners (die oben erw?hnte Partner-ID) und des Signaturzeichens, wobei sign die W?rterbuchbestellung ist Und verwenden Sie & zum Kombinieren, fügen Sie schlie?lich &key=partnerkey (eindeutige Zuordnung) hinzu, führen Sie die MD5-Operation aus und konvertieren Sie sie dann in Gro?buchstaben, um schlie?lich das Vorzeichen zu erhalten |
||||||||||||
Zeitstempel |
Linux-Zeitstempel ; |
||||||||||||
app_signature |
Die beteiligten Signaturfelder werden gem?? der in der Zahlungssignaturgenerierungsmethode (paySign) genannten Signaturmethode generiert und sind: appid, appkey, package, timestamp; | ||||||||||||
sign_method |
Signaturmethode (wird bei der Signaturgenerierung nicht gez?hlt); |
?
二、實現(xiàn)細節(jié)
1. 獲得access token
這個很容易,參考微信公眾平臺開發(fā)(26) ACCESS TOKEN
代碼如下:
$appid = "wx0000000000000000"; $appsecret = "e76050733c695748537fc4d4c21d0e2c"; $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ù)生成
appid: 直接賦值
timestamp:程序直接獲取
$timestamp = time();
sign_method:這里為sha1
難點1:package 值的獲得
先要獲得sign
sign是out_trade_no,partner,key(partnerkey)三項信息的字典序排序,再MD5運算,再轉為大寫
$sign= strtoupper(md5("out_trade_no=JfuKdiBig4zZnE4n&partner=1234567890&key=ebf5cf381de2d716d432bfda34fa9e57"));
package 是查詢訂單的關鍵信息數(shù)據(jù),包含第三方唯一訂單號 out_trade_no、財付通商戶身仹標識 partner(即前文所述的 partnerid) 、簽名 sign
$package = "out_trade_no=JfuKdiBig4zZnE4n&partner=1234567890&sign=".$sign;
難點2:獲得app_signature
app_signature 依然是根據(jù)支付簽名(paySign)生成方法中所講的簽名方式生成的,參加簽名字段為:appid、appkey、package、timestamp;
$obj['appid'] = "wx0000000000000000"; $obj['appkey'] = "8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6k"; $obj['package'] = $package; $obj['timestamp'] = $timestamp; $WxPayHelper->get_biz_sign($obj);
這樣各項參數(shù)都獲得了
3.提交查詢
$jsonmenu = '{ "appid" : "wx0000000000000000", "package" : "'.$package.'", "timestamp" : "'.$timestamp.'", "app_signature" : "'.$app_signature.'", "sign_method" : "sha1" } '; $url = "https://api.weixin.qq.com/pay/orderquery?access_token=".$access_token; $result = https_request($url, $jsonmenu); var_dump($result);
完整代碼如下所示:
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ù) $timestamp = time(); $sign= strtoupper(md5("out_trade_no=JfuKdiBig4zZnE4n&partner=1234567890&key=asdfasdfasdfasdfasdfasdfasdfasdf")); $package = "out_trade_no=JfuKdiBig4zZnE4n&partner=1234567890&sign=".$sign; //2.1構造最麻煩的app_signature $obj['appid'] = "wx0000000000000000"; $obj['appkey'] = "8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6k"; $obj['package'] = $package; $obj['timestamp'] = $timestamp; $WxPayHelper = new WxPayHelper(); //get_biz_sign函數(shù)受保護,需要先取消一下,否則會報錯 $app_signature = $WxPayHelper->get_biz_sign($obj); //3. 將構造的json提交給微信服務器,查詢 $jsonmenu = ' { "appid" : "wx0000000000000000", "package" : "'.$package.'", "timestamp" : "'.$timestamp.'", "app_signature" : "'.$app_signature.'", "sign_method" : "sha1" } '; $url = "https://api.weixin.qq.com/pay/orderquery?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; }
三、訂單結果
上述程序執(zhí)行后,獲得訂單結果如下
{ "errcode": 0, "errmsg": "ok", "order_info": { "ret_code": 0, "ret_msg": "", "input_charset": "GBK", "trade_state": "0", "trade_mode": "1", "partner": "1234567890", "bank_type": "CMB_FP", "bank_billno": "201405273540085997", "total_fee": "1", "fee_type": "1", "transaction_id": "1218614901201405273313473135", "out_trade_no": "JfuKdiBig4zZnE4n", "is_split": "false", "is_refund": "false", "attach": "", "time_end": "20140527194139", "transport_fee": "0", "product_fee": "1", "discount": "0", "rmb_total_fee": "" } }
各個字段的含義如表所示。
參數(shù) |
說明 |
ret_code |
查詢結果狀態(tài)碼,0表明成功,其他表明錯誤; |
ret_msg |
查詢結果出錯信息; |
input_charset |
返回信息中的編碼方式; |
trade_state |
訂單狀態(tài),0為成功,其他為失?。?/p> |
trade_mode |
交易模式,1為即時到帳,其他保留; |
partner |
財付通商戶號,即前文的partnerid; |
bank_type |
銀行類型; |
bank_billno |
銀行訂單號; |
total_fee |
總金額,單位為分; |
fee_type |
幣種,1為人民幣; |
transaction_id |
財付通訂單號; |
out_trade_no |
第三方訂單號; |
is_split |
是否分賬,false為無分賬,true為有分賬; |
is_refund |
是否退款,false為無退款,ture為退款; |
attach |
商戶數(shù)據(jù)包,即生成訂單package時商戶填入的attach; |
time_end |
支付完成時間; |
transport_fee |
物流費用,單位為分; |
product_fee |
物品費用,單位為分; |
discount |
折扣價格,單位為分; |
rmb_total_fee |
換算成人民幣之后的總金額,單位為分,一般看total_fee即可。 |
Wenn im Programm ein Fehler vorliegt, wird dieser in errcode und errmsg beschrieben.
Weitere Artikel zur WeChat-Zahlungsentwicklungsauftragsanfrage finden Sie auf der chinesischen PHP-Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)