$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; } ?>