feat: switch mini program recharge to virtual payment
This commit is contained in:
@@ -116,6 +116,7 @@ pub struct WechatIdentityProfile {
|
||||
pub provider_union_id: Option<String>,
|
||||
pub display_name: Option<String>,
|
||||
pub avatar_url: Option<String>,
|
||||
pub session_key: Option<String>,
|
||||
}
|
||||
|
||||
/// 已绑定微信身份快照。
|
||||
@@ -124,6 +125,7 @@ pub struct WechatIdentityRecord {
|
||||
pub user_id: String,
|
||||
pub provider_uid: String,
|
||||
pub provider_union_id: Option<String>,
|
||||
pub session_key: Option<String>,
|
||||
}
|
||||
|
||||
/// 微信授权 state 快照。
|
||||
|
||||
@@ -97,6 +97,7 @@ struct StoredWechatIdentity {
|
||||
provider_union_id: Option<String>,
|
||||
display_name: Option<String>,
|
||||
avatar_url: Option<String>,
|
||||
session_key: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
@@ -1292,6 +1293,7 @@ impl InMemoryAuthStore {
|
||||
provider_union_id: normalize_optional_string(profile.provider_union_id),
|
||||
display_name: normalize_optional_string(profile.display_name),
|
||||
avatar_url,
|
||||
session_key: normalize_optional_string(profile.session_key),
|
||||
};
|
||||
if let Some(provider_union_id) = identity.provider_union_id.clone() {
|
||||
state
|
||||
@@ -1361,6 +1363,7 @@ impl InMemoryAuthStore {
|
||||
user_id: identity.user_id.clone(),
|
||||
provider_uid: identity.provider_uid.clone(),
|
||||
provider_union_id: identity.provider_union_id.clone(),
|
||||
session_key: identity.session_key.clone(),
|
||||
}))
|
||||
}
|
||||
|
||||
@@ -1377,6 +1380,7 @@ impl InMemoryAuthStore {
|
||||
let next_display_name = normalize_optional_string(profile.display_name);
|
||||
let next_avatar_url = normalize_optional_string(profile.avatar_url);
|
||||
let next_provider_union_id = normalize_optional_string(profile.provider_union_id);
|
||||
let next_session_key = normalize_optional_string(profile.session_key);
|
||||
let next_provider_uid =
|
||||
normalize_required_string(&profile.provider_uid).unwrap_or_default();
|
||||
{
|
||||
@@ -1398,6 +1402,9 @@ impl InMemoryAuthStore {
|
||||
identity.display_name = next_display_name.clone();
|
||||
identity.avatar_url = next_avatar_url;
|
||||
identity.provider_union_id = next_provider_union_id.clone();
|
||||
if next_session_key.is_some() {
|
||||
identity.session_key = next_session_key.clone();
|
||||
}
|
||||
state
|
||||
.wechat_identity_by_provider_uid
|
||||
.insert(next_provider_uid.clone(), identity);
|
||||
@@ -3193,6 +3200,7 @@ mod tests {
|
||||
provider_union_id: Some("wx-union-shared".to_string()),
|
||||
display_name: Some("微信旅人甲".to_string()),
|
||||
avatar_url: None,
|
||||
session_key: None,
|
||||
},
|
||||
})
|
||||
.await
|
||||
@@ -3211,6 +3219,7 @@ mod tests {
|
||||
provider_union_id: Some("wx-union-shared".to_string()),
|
||||
display_name: Some("微信旅人乙".to_string()),
|
||||
avatar_url: None,
|
||||
session_key: None,
|
||||
},
|
||||
})
|
||||
.await
|
||||
@@ -3258,6 +3267,7 @@ mod tests {
|
||||
provider_union_id: Some("wx-union-bind".to_string()),
|
||||
display_name: Some("待绑定微信用户".to_string()),
|
||||
avatar_url: None,
|
||||
session_key: None,
|
||||
},
|
||||
})
|
||||
.await
|
||||
@@ -3303,6 +3313,7 @@ mod tests {
|
||||
provider_union_id: Some("wx-union-bind".to_string()),
|
||||
display_name: Some("已归并微信用户".to_string()),
|
||||
avatar_url: None,
|
||||
session_key: None,
|
||||
},
|
||||
})
|
||||
.await
|
||||
|
||||
Reference in New Issue
Block a user