<?php
class
wXd
{
public
$AppID
=
""
;
public
$AppSecret
=
""
;
public
$OutPut
=
""
;
public
$AccessToken
=
""
;
public
$ID
=
""
;
public
$HandleAT
=
array
();
public
$Logistics
=
array
();
public
function
__construct(
$ID
= '0'){
$this
->ID =
$ID
;
$this
->sLogisticsList();
}
public
function
cUrlRequest(
$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
;
}
public
function
sAcessToken(){
$this
->HandleAT =
$this
->gAccessToken();
if
(
$this
->HandleAT->expire_time < time()){
$appid
=
$this
->AppID;
$appsecret
=
$this
->AppSecret;
$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"
];
$this
->pAccessToken(
$access_token
);
return
$access_token
;
}
else
{
return
$this
->HandleAT->access_token;
}
}
public
function
pAccessToken(
$accesstoken
){
$Path
=
$_SERVER
['DOCUMENT_ROOT'].
"/jSon_file/access_token_"
.
$this
->ID.
".json"
;
if
(!
file_exists
(
$Path
)){
touch(
$Path
);
chmod
(
$Path
,0777);
}
$data
['expire_time'] = time() + 7000;
$data
['access_token'] =
$accesstoken
;
$fp
=
fopen
(
$Path
,
"w"
);
fwrite(
$fp
, json_encode(
$data
));
fclose(
$fp
);
}
public
function
gAccessToken(){
$Path
=
$_SERVER
['DOCUMENT_ROOT'].
"/jSon_file/access_token_"
.
$this
->ID.
".json"
;
if
(!
file_exists
(
$Path
)){
$data
['expire_time'] = 0;
$data
['access_token'] = '';
}
else
{
$data
= json_decode(
file_get_contents
(
$Path
));
}
return
$data
;
}
public
function
gStateProduct(
$state
= 0){
$this
->AccessToken =
$this
->sAcessToken();
$url
=
"https://api.weixin.qq.com/merchant/getbystatus?access_token="
.
$this
->AccessToken;
$ResData
=
$this
->cUrlRequest(
$url
,'{
"status"
: '.
$state
.'}');
print_r( json_decode(
$ResData
) );
}
public
function
sLogisticsList(){
$this
->Logistics['Fsearch_code'] =
"邮政EMS"
;
$this
->Logistics['002shentong'] =
"申通快递"
;
$this
->Logistics['066zhongtong'] =
"中通速递"
;
$this
->Logistics['056yuantong'] =
"圆通速递"
;
$this
->Logistics['042tiantian'] =
"天天快递"
;
$this
->Logistics['003shunfeng'] =
"顺丰速运"
;
$this
->Logistics['059Yunda'] =
"韵达快运"
;
$this
->Logistics['064zhaijisong'] =
"宅急送"
;
$this
->Logistics['020huitong'] =
"汇通快运"
;
$this
->Logistics['zj001yixun'] =
"易迅快递"
;
}
public
function
gOrderInfo(
$order
){
$this
->AccessToken =
$this
->sAcessToken();
$url
=
"https://api.weixin.qq.com/merchant/order/getbyid?access_token="
.
$this
->AccessToken;
$ResData
=
$this
->cUrlRequest(
$url
,'{
"order_id"
:
"'.$order.'"
}');
print_r( json_decode(
$ResData
) );
}
public
function
gOrderAll(
$data
=
array
()){
$this
->AccessToken =
$this
->sAcessToken();
$url
=
"https://api.weixin.qq.com/merchant/order/getbyfilter?access_token="
.
$this
->AccessToken;
if
(!
empty
(
$data
)){
$data
= json_encode(
$data
);
}
else
{
$firstday
=
strtotime
(
date
(
"Y-m-01"
,time()));
$data
=
array
('begintime' =>
$firstday
,'endtime' =>
strtotime
(
"$firstday +1 month -1 day"
));
$data
= json_encode(
$data
);
}
$ResData
=
$this
->cUrlRequest(
$url
,
$data
);
print_r( json_decode(
$ResData
) );
}
public
function
sOrderDelivery(
$data
=
array
(
"need_delivery"
=> '0')){
$this
->AccessToken =
$this
->sAcessToken();
$url
=
"https://api.weixin.qq.com/merchant/order/setdelivery?access_token="
.
$this
->AccessToken;
if
(!
empty
(
$data
)){
$data
= json_encode(
$data
);
}
else
{
$data
=
array
(
"need_delivery"
=> '0');
$data
= json_encode(
$data
);
}
$ResData
=
$this
->cUrlRequest(
$url
,
$data
);
print_r( json_decode(
$ResData
) );
}
public
function
sOrderClose(
$order
){
$this
->AccessToken =
$this
->sAcessToken();
$url
=
"https://api.weixin.qq.com/merchant/order/close?access_token="
.
$this
->AccessToken;
$ResData
=
$this
->cUrlRequest(
$url
,'{
"order_id"
:
"'.$order.'"
}');
print_r( json_decode(
$ResData
) );
}
}