$value) {
$array[$key] = object_array($value);
}
}
return $array;
}
require_once dirname ( __FILE__ ).DIRECTORY_SEPARATOR.'service/AlipayTradeService.php';
require_once dirname ( __FILE__ ).DIRECTORY_SEPARATOR.'buildermodel/AlipayTradeQueryContentBuilder.php';
require dirname ( __FILE__ ).DIRECTORY_SEPARATOR.'./../config.php';
if (!empty($_GET['out_trade_no'])){
//商户订单号和支付宝交易号不能同时为空。 trade_no、 out_trade_no如果同时存在优先取trade_no
//商户订单号,和支付宝交易号二选一
$out_trade_no = trim($_GET['out_trade_no']);
$RequestBuilder = new AlipayTradeQueryContentBuilder();
$RequestBuilder->setOutTradeNo($out_trade_no);
$Response = new AlipayTradeService($config);
$result = $Response->Query($RequestBuilder);
$result = object_array($result);
if(!empty($result) && $result["code"] != "40004"){
//支付宝交易号
$trade_no = !empty($result['trade_no'])?$result['trade_no']:"";
//交易状态
$trade_status = $result['trade_status'];
if ($trade_status == 'TRADE_SUCCESS') {
//判断该笔订单是否在商户网站中已经做过处理
//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
//请务必判断请求时的total_amount与通知时获取的total_fee为一致的
//如果有做过处理,不执行商户的业务程序
//注意:
//付款完成后,支付宝系统发送该交易状态通知
//查后台订单状态
$time = time();
setrawcookie ("PayDoneTime", $time, time() + 600,"/");
$key='apivcomcn20170421';
$method = "Order_detail";
$ShopOrdID = $out_trade_no;
$arr = array("method"=>$method,"ShopOrdID"=>$ShopOrdID);
ksort($arr);
$i=0;
$stringA='';
foreach($arr as $k=>$v){
$stringA=$stringA.$k.$v;
}
$stringSignTemp=$stringA.$key;
$stringSignTemp=str_replace(" ", "%20", $stringSignTemp);
$sign=MD5($stringSignTemp);
$content = 'method='.$method.'&ShopOrdID='.$ShopOrdID;
$content .= '&Sign='.$sign;
$order_url='http://api.v.com.cn/order/?'.$content;
$order_url=str_replace(" ", "%20", $order_url);
// var_dump($url);exit;
$orderinfo=file_get_contents($order_url);
$orderinfo=json_decode($orderinfo,true);
if(!empty($orderinfo["ProgressE"]) && $orderinfo["ProgressE"] != "0"){
$status = $orderinfo["ProgressE"];
}elseif($orderinfo["ProgressD"] === "0" || $orderinfo["ProgressD"] === "2"){
if($orderinfo["ProgressM"] === "1"){
$status = "已支付";
}elseif($orderinfo["ProgressM"] === "0"){
$status = "未支付";
}elseif($orderinfo["ProgressM"] === "4"){
$status = "已取消";
}
}elseif($orderinfo["ProgressD"] === "4"){
$status = "已取消";
}elseif($orderinfo["ProgressD"] === "3"){
$status = "已下发";
}
if($status == "未支付"){
$method = "Order_PayNotify";
$transaction_id = $trade_no;
$mch_id = "2016090601857165";
$total_fee = number_format($result["total_amount"],2,'.','');
$ShopOrdID = $out_trade_no;
$PayMono = urlencode("支付宝");
$arr = array("method"=>$method,"transaction_id"=>$transaction_id,"mch_id"=>$mch_id,"out_trade_no"=>$out_trade_no,"total_fee"=>$total_fee,"ShopOrdID"=>$ShopOrdID,"PayMono"=>$PayMono);
ksort($arr);
$i=0;
$stringA='';
foreach($arr as $k=>$v){
$stringA=$stringA.$k.$v;
}
$stringSignTemp=$stringA.$key;
$stringSignTemp=str_replace(" ", "%20", $stringSignTemp);
$sign=MD5($stringSignTemp);
$content = 'method='.$method.'&transaction_id='.$transaction_id.'&mch_id='.$mch_id.'&out_trade_no='.$out_trade_no.'&total_fee='.$total_fee.'&ShopOrdID='.$ShopOrdID.'&PayMono='.$PayMono;
$content .= '&Sign='.$sign;
$order_url='http://api.v.com.cn/order/?'.$content;
$order_url=str_replace(" ", "%20", $order_url);
$orderinfo=file_get_contents($order_url);
$orderinfo=json_decode($orderinfo,true);
}
echo "";exit;
}
}elseif(!empty($_GET['transaction_id'])){
$transaction_id = $_GET['transaction_id'];
header("Location: http://m.v.com.cn/phpmvcomcn/jingnei/example/orderquery.php?transaction_id=$transaction_id");exit;
}else{
echo "";exit;
}
return;
}
?>