公司的项目在生产环境正常运行,接到一个需要修改支付回调的地方的模块开发,为了线上环境的正常运行,配置线上测试环境,但是支付成功后两个平台都是将异步回调信息回掉到正式环境。
刚开始的想法是使用两个平台的沙箱,但是沙箱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']变量中
微信支付相关代码:
生产环境:
$url = "http://***.**

本文介绍了如何在不使用沙箱环境的情况下,解决微信和支付宝在测试和生产环境中使用同一支付账号导致的问题。通过在生产环境的回调处理代码中转发信息到测试环境,实现安全测试,测试完毕后移除转发代码。同时提供了支付宝和微信支付的回调处理代码示例,并提及使用日志记录进行异步回调的调试方法。
最低0.47元/天 解锁文章
5227

被折叠的 条评论
为什么被折叠?



