支付宝回调问题

今天在看项目日志的时候发现的问题,项目已经上线3个月了,突然发现在支付宝回调接口被调用,调用的订单号是3个月之前的订单号。通过查询才知道原来支付宝的一个订单会有两个回调。

第一个回调是在支付成功之后的回调,
第二个是这个订单支付成功3个月之后的回调。
第一个返回的参数中trade_status的值是TRADE_SUCCESS,这个是支付成功的回调,我们在这个之后可以去处理业务逻辑
第二个返回的参数中trade_status的值是TRADE_FINISHED,这个是交易完成的回调,如果项目不涉及退款业务可以直接省略不用判断了。

我出现的问题是因为在判断时候出现问题

//处理交易完成或者支付成功的通知
if($_POST['trade_status'] == 'TRADE_SUCCESS' || $_POST['trade_status'] == 'TRADE_FINISHED'){
	//这里处理逻辑
}

如果是交易完成的回调应该不走这个业务逻辑的,要根据自己的退款逻辑去处理,所以直接修改判断即可

if($_POST['trade_status'] == 'TRADE_SUCCESS' ){
	//这里处理逻辑
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue中处理支付宝的付款回调可以按照以下步骤进行: 1. 在Vue项目的前端页面中,创建一个用于接收支付宝回调URL。这个URL将用于接收支付宝服务器发送的回调请求。 2. 在Vue项目的后端服务器中,创建一个用于处理支付宝回调的接口。这个接口将接收前端页面发送过来的回调请求,并进行验证和处理。 3. 在支付宝开放平台中,配置支付宝回调URL。在配置中,将前面创建的URL作为回调地址。 4. 在后端接口中,验证支付宝回调请求的合法性。可以使用支付宝提供的SDK或工具包进行验证,确保回调请求是由支付宝服务器发送的,并且数据没有被篡改。 5. 根据回调请求的结果,进行相应的处理。例如,更新订单状态、生成交易记录等。 下面是一个示例代码片段,展示了如何在Vue中处理支付宝的付款回调: ```javascript // 前端页面中的代码 methods: { handleAlipayCallback() { // 发送回调请求到后端接口 axios.post('/api/alipay/callback', { /* 回调请求数据 */ }) .then(response => { // 处理回调请求的响应 console.log(response.data); }) .catch(error => { // 处理错误 console.error(error); }); } } // 后端接口中的代码 app.post('/api/alipay/callback', (req, res) => { // 验证回调请求的合法性 const isValid = verifyAlipayCallback(req.body); if (isValid) { // 处理回调请求 handleAlipayCallback(req.body); // 返回处理结果 res.send('success'); } else { // 回调请求不合法,返回错误信息 res.status(403).send('Invalid callback request'); } }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值