fix: lock recharge flow until virtual payment settles
This commit is contained in:
@@ -9,9 +9,7 @@ use axum::{
|
||||
};
|
||||
use base64::{
|
||||
Engine as _, alphabet,
|
||||
engine::general_purpose::{
|
||||
GeneralPurpose, GeneralPurposeConfig, STANDARD as BASE64_STANDARD,
|
||||
},
|
||||
engine::general_purpose::{GeneralPurpose, GeneralPurposeConfig, STANDARD as BASE64_STANDARD},
|
||||
};
|
||||
use bytes::Bytes;
|
||||
use cbc::cipher::{BlockDecryptMut, KeyIvInit, block_padding::NoPadding};
|
||||
@@ -1017,6 +1015,8 @@ pub async fn handle_wechat_virtual_payment_notify(
|
||||
);
|
||||
}
|
||||
|
||||
state.publish_profile_recharge_order_update(notify.out_trade_no.clone());
|
||||
|
||||
info!(
|
||||
event = notify.event.as_str(),
|
||||
order_id = notify.out_trade_no.as_str(),
|
||||
@@ -1152,9 +1152,7 @@ fn resolve_wechat_message_push_verify_response(
|
||||
.as_deref()
|
||||
.map(str::trim)
|
||||
.filter(|value| !value.is_empty())
|
||||
.ok_or_else(|| {
|
||||
WechatPayError::InvalidRequest("微信消息推送校验参数不完整".to_string())
|
||||
})?;
|
||||
.ok_or_else(|| WechatPayError::InvalidRequest("微信消息推送校验参数不完整".to_string()))?;
|
||||
if !verify_wechat_message_push_signature(token, timestamp, nonce, "", signature) {
|
||||
return Err(WechatPayError::InvalidSignature(
|
||||
"微信消息推送校验签名无效".to_string(),
|
||||
|
||||
Reference in New Issue
Block a user