欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

微信支付開發(fā)訂單查詢實(shí)例

 更新時(shí)間:2016年07月12日 10:31:56   投稿:lqh  
本篇文章主要介紹微信支付中訂單查詢功能的實(shí)現(xiàn),并提供代碼實(shí)例,希望能幫助到微信支付開發(fā)的小伙伴

因?yàn)槟骋环郊夹g(shù)的原因,可能導(dǎo)致商戶在預(yù)期時(shí)間內(nèi)都收不到最終支付通知,此時(shí)商戶可以通過(guò)該API來(lái)查詢訂單的詳細(xì)支付狀態(tài)。

訂單查詢API的URL為:

https://api.weixin.qq.com/pay/orderquery?access_token=xxxxxx

URL中的參數(shù)只包含目前微信公眾平臺(tái)憑證access_token,而訂單查詢的真正數(shù)據(jù)是放在PostData中的,格式如下:

{
    "appid" : "wwwwb4f85f3a797777",
    "package" : "out_trade_no=11122&partner=1900090055&sign=4e8d0df3da0c3d0df38f",
    "timestamp" : "1369745073",
    "app_signature" : "53cca9d47b883bd4a5c85a9300df3da0cb48565c",
    "sign_method" : "sha1"
}

上述內(nèi)容參數(shù)說(shuō)明如表所示。

參數(shù) 說(shuō)明
appid 公眾平臺(tái)賬戶的AppId;
package 查詢訂單的關(guān)鍵信息數(shù)據(jù),包含第三方唯一訂單號(hào)out_trade_no、財(cái)付通商戶身仹標(biāo)識(shí)partner(即前文所述的partnerid)、簽名sign,其中sign是對(duì)參數(shù)字典序排序并使用&聯(lián)合起來(lái),最后加上&key=partnerkey(唯一分配),進(jìn)行md5運(yùn)算,再轉(zhuǎn)成全大寫,最終得到sign
timestamp linux時(shí)間戳;
app_signature 根據(jù)支付簽名(paySign)生成方法中所講的簽名方式生成的,參加簽名字段為:appid、appkey、package、timestamp;
sign_method 簽名方法(不計(jì)入簽名生成);

 二、實(shí)現(xiàn)細(xì)節(jié)

1. 獲得access token

這個(gè)很容易,參考微信公眾平臺(tái)開發(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

 難點(diǎn)1:package 值的獲得

 先要獲得sign

 sign是out_trade_no,partner,key(partnerkey)三項(xiàng)信息的字典序排序,再M(fèi)D5運(yùn)算,再轉(zhuǎn)為大寫

$sign= strtoupper(md5("out_trade_no=JfuKdiBig4zZnE4n&partner=1234567890&key=ebf5cf381de2d716d432bfda34fa9e57"));

 package 是查詢訂單的關(guān)鍵信息數(shù)據(jù),包含第三方唯一訂單號(hào) out_trade_no、財(cái)付通商戶身仹標(biāo)識(shí) partner(即前文所述的 partnerid) 、簽名 sign

$package = "out_trade_no=JfuKdiBig4zZnE4n&partner=1234567890&sign=".$sign;

難點(diǎn)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);

這樣各項(xiàng)參數(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.準(zhǔn)備參數(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構(gòu)造最麻煩的app_signature
$obj['appid']   = "wx0000000000000000";
$obj['appkey']   = "8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6k";
$obj['package']  = $package;
$obj['timestamp']  = $timestamp;
$WxPayHelper = new WxPayHelper();
//get_biz_sign函數(shù)受保護(hù),需要先取消一下,否則會(huì)報(bào)錯(cuò)
$app_signature = $WxPayHelper->get_biz_sign($obj);

//3. 將構(gòu)造的json提交給微信服務(wù)器,查詢
$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;
}

三、訂單結(jié)果

上述程序執(zhí)行后,獲得訂單結(jié)果如下

{
 "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": ""
 }
}

各個(gè)字段的含義如表所示

參數(shù) 說(shuō)明
ret_code 查詢結(jié)果狀態(tài)碼,0表明成功,其他表明錯(cuò)誤;
ret_msg 查詢結(jié)果出錯(cuò)信息;
input_charset 返回信息中的編碼方式;
trade_state 訂單狀態(tài),0為成功,其他為失敗;
trade_mode 交易模式,1為即時(shí)到帳,其他保留;
partner 財(cái)付通商戶號(hào),即前文的partnerid;
bank_type 銀行類型;
bank_billno 銀行訂單號(hào);
total_fee 總金額,單位為分;
fee_type 幣種,1為人民幣;
transaction_id 財(cái)付通訂單號(hào);
out_trade_no 第三方訂單號(hào);
is_split 是否分賬,false為無(wú)分賬,true為有分賬;
is_refund 是否退款,false為無(wú)退款,ture為退款;
attach 商戶數(shù)據(jù)包,即生成訂單package時(shí)商戶填入的attach;
time_end 支付完成時(shí)間;
transport_fee 物流費(fèi)用,單位為分;
product_fee 物品費(fèi)用,單位為分;
discount 折扣價(jià)格,單位為分;
rmb_total_fee 換算成人民幣之后的總金額,單位為分,一般看total_fee即可。

如果程序有誤,會(huì)在errcode和errmsg描述出來(lái)。

以上就是對(duì)微信支付開發(fā)中查詢功能的資料整理,希望能幫到微信開發(fā)支付的朋友。

相關(guān)文章

  • php數(shù)組去重實(shí)例及分析

    php數(shù)組去重實(shí)例及分析

    這篇文章主要是介紹了php數(shù)組去重實(shí)例及分析。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2013-11-11
  • thinkphp模板輸出技巧匯總

    thinkphp模板輸出技巧匯總

    這篇文章主要介紹了thinkphp模板輸出技巧,實(shí)例匯總了變量輸出、系統(tǒng)變量、運(yùn)算符等常用是輸出技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-11-11
  • 使用vs code編輯調(diào)試php配置的方法

    使用vs code編輯調(diào)試php配置的方法

    這篇文章主要介紹了使用vs code編輯調(diào)試php配置的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • php中引用符號(hào)(&)的使用詳細(xì)介紹

    php中引用符號(hào)(&)的使用詳細(xì)介紹

    php的引用就是在變量或者函數(shù)、對(duì)象等前面加上&符號(hào),在PHP 中引用的意思是:不同的名字訪問(wèn)同一個(gè)變量?jī)?nèi)容,下面介紹如何使用PHP的引用,需要的朋友可以參考下
    2016-12-12
  • ThinkPHP模板判斷輸出Defined標(biāo)簽用法詳解

    ThinkPHP模板判斷輸出Defined標(biāo)簽用法詳解

    這篇文章主要介紹了ThinkPHP模板判斷輸出Defined標(biāo)簽用法詳解,需要的朋友可以參考下
    2014-06-06
  • Discuz論壇密碼與密保加密規(guī)則

    Discuz論壇密碼與密保加密規(guī)則

    這篇文章主要介紹了Discuz論壇密碼與密保加密規(guī)則的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Laravel 5框架學(xué)習(xí)之模型、控制器、視圖基礎(chǔ)流程

    Laravel 5框架學(xué)習(xí)之模型、控制器、視圖基礎(chǔ)流程

    本文給大家介紹的是Laravel5框架中模型、控制器、視圖的基礎(chǔ)流程,其實(shí)MVC體系結(jié)構(gòu)模式將一個(gè)交互式系統(tǒng)分為三個(gè)組件。模型包含核心功能和數(shù)據(jù)。視圖向用戶顯示信息??刂破魈幚碛脩糨斎?。視圖和控制器共同構(gòu)成了用戶接口。
    2015-04-04
  • laravel yajra插件 datatable的使用詳解

    laravel yajra插件 datatable的使用詳解

    這篇文章主要介紹了laravel yajra插件 datatable的使用詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Zend?Framework框架db類select查詢器join鏈表使用示例

    Zend?Framework框架db類select查詢器join鏈表使用示例

    這篇文章主要介紹了Zend?Framework框架的Db類select查詢器join鏈表使用示例,需要的朋友可以參考下
    2014-03-03
  • TP5框架實(shí)現(xiàn)一次選擇多張圖片并預(yù)覽的方法示例

    TP5框架實(shí)現(xiàn)一次選擇多張圖片并預(yù)覽的方法示例

    這篇文章主要介紹了TP5框架實(shí)現(xiàn)一次選擇多張圖片并預(yù)覽的方法,結(jié)合實(shí)例形式詳細(xì)分析了thinkPHP5基于ajax數(shù)據(jù)提交上傳多張圖片與本地預(yù)覽相關(guān)操作技巧,需要的朋友可以參考下
    2020-04-04

最新評(píng)論