公司的项目在生产环境正常运行,接到一个需要修改支付回调的地方的模块开发,为了线上环境的正常运行,配置线上测试环境,但是支付成功后两个平台都是将异步回调信息回掉到正式环境。
刚开始的想法是使用两个平台的沙箱,但是沙箱1.需要研究配置2.上线之后可能会跟真实环境有差异,所以直接在线上的接收回调的地方将回调信息转发到测试环境,测试结束屏蔽转发代码。
支付宝:
支付宝异步回调用数组传的信息。信息存储在$_POST变量中
支付宝相关代码:
生产环境:
$url = "http://***.*****.com/****/******/notifyurl";(你需要接收异步回调的测试地址)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($ch);
curl_close($ch);
测试环境:
支付宝的测试环境不需要做特殊的修改
微信支付:
微信支付异步回调使用XML传信息 值存储在$GLOBALS['HTTP_RAW_POST_DATA']变量中
微信支付相关代码: