예제 #1
0
파일: MicroPay.php 프로젝트: noikiy/wowewe
 /**
  * 
  * 查询订单情况
  * @param string $out_trade_no  商户订单号
  * @param int $succCode         查询订单结果
  * @return 0 订单不成功,1表示订单成功,2表示继续等待
  */
 public function query($out_trade_no, &$succCode)
 {
     $queryOrderInput = new WxPayOrderQuery();
     $queryOrderInput->SetOut_trade_no($out_trade_no);
     $result = WxPayApi::orderQuery($queryOrderInput);
     if ($result["return_code"] == "SUCCESS" && $result["result_code"] == "SUCCESS") {
         //支付成功
         if ($result["trade_state"] == "SUCCESS") {
             $succCode = 1;
             return $result;
         } else {
             if ($result["trade_state"] == "USERPAYING") {
                 $succCode = 2;
                 return false;
             }
         }
     }
     //如果返回错误码为“此交易订单号不存在”则直接认定失败
     if ($result["err_code"] == "ORDERNOTEXIST") {
         $succCode = 0;
     } else {
         //如果是系统错误,则后续继续
         $succCode = 2;
     }
     return false;
 }
예제 #2
0
 /**
  * 查询订单根据out_trade_no
  */
 public function queryByOutTradeNo($out_trade_no)
 {
     $input = new WxPayOrderQuery();
     $input->setConfig($this->config);
     $input->SetOut_trade_no($out_trade_no);
     \Common\Api\Wxpay\WxPayApi::setConfig($this->config);
     return \Common\Api\Wxpay\WxPayApi::orderQuery($input);
 }
예제 #3
0
 private function queryOrder($out_trade_no, $inStatus = '')
 {
     if (isset($out_trade_no) && $out_trade_no != "") {
         $input = new WxPayOrderQuery();
         $input->SetOut_trade_no($out_trade_no);
         $info = WxPayApi::orderQuery($input);
         if ($inStatus == 'code') {
             return $info['trade_state'];
         }
         $status = orderState($info['trade_state']);
     }
     return $status;
 }
 public function queryOrder($out_trade_no)
 {
     $input = new \WxPayOrderQuery();
     $input->setWxPayApi($this->wxPayApi);
     $input->SetOut_trade_no($out_trade_no);
     $result = \WxPayApi::orderQuery($input);
     /*
     if(array_key_exists("return_code", $result)
         && array_key_exists("result_code", $result)
         && $result["return_code"] == "SUCCESS"
         && $result["result_code"] == "SUCCESS")
     {
         return true;
     }
     */
     return $result;
 }
예제 #5
0
{
    foreach ($data as $key => $value) {
        echo "<font color='#f00;'>{$key}</font> : {$value} <br/>";
    }
}
if (isset($_REQUEST["transaction_id"]) && $_REQUEST["transaction_id"] != "") {
    $transaction_id = $_REQUEST["transaction_id"];
    $input = new WxPayOrderQuery();
    $input->SetTransaction_id($transaction_id);
    printf_info(WxPayApi::orderQuery($input));
    exit;
}
if (isset($_REQUEST["out_trade_no"]) && $_REQUEST["out_trade_no"] != "") {
    $out_trade_no = $_REQUEST["out_trade_no"];
    $input = new WxPayOrderQuery();
    $input->SetOut_trade_no($out_trade_no);
    printf_info(WxPayApi::orderQuery($input));
    exit;
}
?>
<body>  
	<form action="#" method="post">
        <div style="margin-left:2%;color:#f00">微信订单号和商户订单号选少填一个,微信订单号优先:</div><br/>
        <div style="margin-left:2%;">微信订单号:</div><br/>
        <input type="text" style="width:96%;height:35px;margin-left:2%;" name="transaction_id" /><br /><br />
        <div style="margin-left:2%;">商户订单号:</div><br/>
        <input type="text" style="width:96%;height:35px;margin-left:2%;" name="out_trade_no" /><br /><br />
		<div align="center">
			<input type="submit" value="查询" style="width:210px; height:50px; border-radius: 15px;background-color:#FE6714; border:0px #FE6714 solid; cursor: pointer;  color:white;  font-size:16px;" type="button" onclick="callpay()" />
		</div>
	</form>
예제 #6
0
 public function actionOrderQuery()
 {
     if (isset($_REQUEST["out_trade_no"]) && $_REQUEST["out_trade_no"] != "") {
         $out_trade_no = $_REQUEST["out_trade_no"];
         $input = new \WxPayOrderQuery();
         $input->SetOut_trade_no($out_trade_no);
         $result = \WxPayApi::orderQuery($input);
         $this->renderAjax($result);
     } else {
         $this->renderAjax('没有订单号你叫我怎么查?');
     }
 }
예제 #7
0
function wxqueryorderdata($body)
{
    //    $data['pay_no'] = isset($body['out_data']['pay_no'])?$body['out_data']['pay_no']:'';
    //    if(!$data['pay_no']){
    //        $ret1['status'] = 1041;
    //        $ret1['desc'] = '等待支付';
    //        return $ret1;
    //    }
    $queryOrderInput = new WxPayOrderQuery();
    $queryOrderInput->SetOut_trade_no($body['order_no']);
    $ret = WxPayApi::orderQuery($queryOrderInput);
    //数据已经解析为了数组格式
    $retexec = array();
    if ($ret['return_code'] == 'SUCCESS') {
        //查询成功
        $resp['wx_app_id'] = $ret['appid'];
        $resp['wx_partner_id'] = $ret['mch_id'];
        if ($ret['result_code'] == 'SUCCESS') {
            //
            switch ($ret['trade_state']) {
                case 'SUCCESS':
                    //支付成功
                    $body['pay_result'] = 2;
                    $body['pay_time'] = $ret['time_end'];
                    $retexec = exec_procedure($body, 'p_order_update_result');
                    $retexec['order_state'] = 2;
                    break;
                case 'REFUND':
                    //转入退款
                //转入退款
                case 'NOTPAY':
                    //未支付
                //未支付
                case 'CLOSED':
                    //已关闭
                //已关闭
                case 'REVOKED':
                    //已撤销
                //已撤销
                case 'USERPAYING':
                    //用户支付中
                //用户支付中
                case 'PAYERROR':
                    //支付失败
                    $retexec = exec_procedure($body, 'p_order_query_result');
                    $retexec['out_state'] = isset($retexec['out_data']['out_state']) ? $retexec['out_data']['out_state'] : 0;
                    break;
            }
        }
        return $retexec;
    } else {
        $ret['status'] = 1045;
        return $ret;
    }
}
예제 #8
0
 /**
  * 
  * 查询订单情况
  * @param string $out_trade_no  商户订单号
  * @param int $succCode         查询订单结果
  * @return 0 订单不成功,1表示订单成功,2表示继续等待
  */
 public function query($out_trade_no, &$succCode)
 {
     $queryOrderInput = new \WxPayOrderQuery();
     $queryOrderInput->setWxPayApi($this->wxPayApi);
     \Log::info('curl timeout :' . $this->wxPayConfig['CURL_TIMEOUT']);
     $queryOrderInput->SetOut_trade_no($out_trade_no);
     $result = $this->wxPayApi->orderQuery($queryOrderInput, $this->wxPayConfig['CURL_TIMEOUT']);
     if ($result["return_code"] == "SUCCESS" && $result["result_code"] == "SUCCESS") {
         //支付成功
         if ($result["trade_state"] == "SUCCESS") {
             $succCode = 1;
             return $result;
         } else {
             if ($result["trade_state"] == "USERPAYING") {
                 $succCode = 2;
                 return false;
             }
         }
     }
     //如果返回错误码为“此交易订单号不存在”则直接认定失败
     if ($result["err_code"] == "ORDERNOTEXIST") {
         $succCode = 0;
     } else {
         //如果是系统错误,则后续继续
         $succCode = 2;
     }
     return false;
 }
예제 #9
0
 private function queryOrder($out_trade_no = '', $inStatus = 0)
 {
     if ($inStatus == 4) {
         return $status = '已经申请退款';
     }
     if (isset($out_trade_no) && $out_trade_no != "") {
         $input = new WxPayOrderQuery();
         $input->SetOut_trade_no($out_trade_no);
         $info = WxPayApi::orderQuery($input);
         if (isset($info['err_code']) && $info['err_code'] == 'ORDERNOTEXIST') {
             $trade_state = 'NOTPAY';
         } else {
             $trade_state = $info['trade_state'];
         }
         // $status = orderState($trade_state);
     }
     return $trade_state;
 }