微信APP支付一直回调问题 求解决

/**
 * 微信异步通知
 * @author 王柯 
 * @return void
 */
public function WxPayNotify()
{
    require_once EXTEND_PATH.'/wxpay/lib/WxPay.Data.php';

    $wxpay = new \WxPayDataBase();

    Db::startTrans();

    try{
        //接收微信返回的数据数据,返回的xml格式
        $xmlData = file_get_contents('php://input');

        //$result = \WxPayResults::Init($xmlData);

        //xml格式转换为数组
        $data = $wxpay->FromXml($xmlData);

        if($data['sign'] == $wxpay->getSign($data)){
            if ($data['result_code'] == 'SUCCESS'){
                 //这儿会记录多次数据信息 回调多次
                Log::write(json_encode($request)."\r\n");
                
                //中间逻辑代码就不贴上来了

                Db::commit();
                //这儿返回数据给微信试了无数个办法还是不行
                //echo '';exit;

                $return['return_code'] = 'SUCCESS';
                $return['return_msg'] = 'OK';
                $string = self::arrayToXml($return);

                echo $string; exit;
            }else{
                Log::write("支付失败信息:".json_encode($data).date("Y-m-d H:i:s"),time()."\r\n");
            }
        }else{
            Log::write("签名验证失败:".json_encode($data).date("Y-m-d H:i:s"),time()."\r\n");
        }
    }catch (\Exception $e){
        Db::rollback();
        Log::write($e->getMessage()."\r\n"."支付异常信息:".json_encode($data).date("Y-m-d H:i:s"),time()."\r\n");
    }
}

/**
 * 数组转xml
 * @param array $arr 数组参数 *必传
 * @author 王柯 
 * @return string
 */
public static function arrayToXml($arr){
    $xml = "";

    foreach($arr as $key => $val){
        if(is_numeric($val)){
            $xml.="<".$key.">".$val.".$key.">";
        }else{
            $xml.="<".$key.">.$val."]]>.$key.">";
        }
    }

    $xml.="";

    return $xml;
}

/**
 * xml转数组
 * @param string $xml xml数据 *必传
 * @author 王柯 
 * @return array|bool|\mix|mixed|\stdClass|string
 */
public static function xmlToArray($xml){
    $array_data = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);

    return $array_data;
}

你可能感兴趣的:(php,weixin)