网站接入支付宝支付,notify_url.php和return_url.php怎么写?
看了下文档研究了一晚上,大概明白了整个流程。
用户点击付款,请求支付页面,支付成功跳转 return_url.php,这个其实就是支付成功后的提示页面。因为可能随时关闭,所以只用来展示结果页面,不用来更新订单信息。
付款发出请求后,支付宝后台会异步发送一个通知到 notify_url.php,开发者需要在此页面根据状态进行相关的功能开发。
目前我是这么写的
if($_POST['trade_status'] == 'TRADE_FINISHED' || $_POST['trade_status'] == 'TRADE_SUCCESS') {
$sql = "update vip_order_list set trade_no='$trade_no',trade_status='$trade_status' where out_trade_no='$out_trade_no'";
$res = mysqli_query($con, $sql);
//判断该笔订单是否在商户网站中已经做过处理
//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
//请务必判断请求时的total_amount与通知时获取的total_fee为一致的
//如果有做过处理,不执行商户的业务程序
//注意:
//退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知
}
echo "success"; //请不要修改或删除
但是测试时,支付成功后,数据库里面的信息并没有更新,感觉压根没走 notify_url.php
所有相请教下有结果支付宝支付的大佬,notify_url 和 return_url 到底应该怎么写
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
return_url 表示用户支付成功后,用户跳转回来的地址。
notify_url 表示支付成功后,支付宝网关发送给你的消息的地址。
你可以先用
file_get_contents('php://input')
获取支付宝发送过来的数据存到日志进行排查。也可以去支付宝开发者平台的的联调找异步回调记录,看发送的数据,自己拿过来模拟,详情咨询支付宝技术客服。
notify_url 有没有写正确?
外网能不能访问?
另外,在判断之前,先获取所有的请求数据:
不要直接在成功那里去操作数据库。
先确定收到数据了,再看一看数据是否正确。