在微信支付提供的phpJDK以及使用overtrue/wechat包处理微信回调的都必须先加载商户号以及APP_id等配置
所以如果我们有多个微信支付商户,在处理之前无法先加载对应的配置,便无法正确处理是哪个商户号的回调订单
处理这种情况的也很简单,只需要想获取微信支付回调的信息,读取其中的商户订单号,查找相应的支付商户配置后再做操作。
1.获取微信回调信息代码:
functiongetNotifyData()
{
$xml=$GLOBALS['HTTP_RAW_POST_DATA'];
if(!$xml){
throw new\Exception("xml数据异常!");
}
//将XML转为array
//禁止引用外部xml实体
libxml_disable_entity_loader(true);
$res = json_decode(json_encode(simplexml_load_string($xml,'SimpleXMLElement',LIBXML_NOCDATA)),true);
return $res;
}
以上代码使用微信提供的SDK中获得的,很简单,我只是记录下一个解决问题的思路。不知道有谁也跟我一下碰到过。
网友评论