微信支付一直回调

浏览:1359 发布日期:2018/04/21 分类:求助交流 关键字: 微信支付
/**
* 微信异步通知
* @author 王柯 <wangke.email@foxmail.com>
* @return void
*/
public function WxPayNotify()
{
require_once EXTEND_PATH.'/wxpay/lib/WxPay.Data.php';

$wxpay = new \WxPayDatabase();

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($data).date("Y-m-d H:i:s"),time()."\r\n");//这儿回调一次会记录一次,会一直回调 15/15/30 单位秒回调。。。
//echo exit('<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>');
$return['return_code'] = 'SUCCESS';
$return['return_msg'] = 'OK';

echo self::arrayToxml($return);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){
Log::write($e->getMessage()."\r\n"."支付异常信息:".json_encode($data).date("Y-m-d H:i:s"),time()."\r\n");
}
}

/**
* 数组转xml
* @param array $arr 数组参数 *必传
* @author 王柯 <wangke.email@foxmail.com>
* @return string
*/
public static function arrayToxml($arr){
$xml = "<xml>";

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

$xml.="</xml>";

return $xml;
}

/**
* xml转数组
* @param string $xml xml数据 *必传
* @author 王柯 <wangke.email@foxmail.com>
* @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;
}


以上代码回调返回给微信端的结果改了各种格式无数次 还是不行 老是重复回调!!!!真尼玛气的吐血了!!!在线等!
最佳答案
评论( 相关
后面还有条评论,点击查看>>