新增支付方式获取
This commit is contained in:
parent
89c7334caf
commit
040d7d746a
@ -102,6 +102,9 @@ class KRPurchaseMembershipController extends GetxController {
|
|||||||
await kr_fetchPackages();
|
await kr_fetchPackages();
|
||||||
// await kr_fetchPaymentMethods(); // ⚠️ 后端暂未实现 /v1/app/payment/methods 接口
|
// await kr_fetchPaymentMethods(); // ⚠️ 后端暂未实现 /v1/app/payment/methods 接口
|
||||||
|
|
||||||
|
// 获取公开的支付方式
|
||||||
|
await _kr_fetchPublicPaymentMethods();
|
||||||
|
|
||||||
// 根据套餐数量决定是否显示套餐选择器
|
// 根据套餐数量决定是否显示套餐选择器
|
||||||
kr_showPlanSelector.value = kr_plans.length > 1;
|
kr_showPlanSelector.value = kr_plans.length > 1;
|
||||||
|
|
||||||
@ -190,6 +193,51 @@ class KRPurchaseMembershipController extends GetxController {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// 获取公开的支付方式列表
|
||||||
|
Future<void> _kr_fetchPublicPaymentMethods() async {
|
||||||
|
final either = await _kr_subscribeApi.kr_getPublicPaymentMethods();
|
||||||
|
either.fold(
|
||||||
|
(error) {
|
||||||
|
KRLogUtil.kr_e('获取公开支付方式失败: ${error.msg}', tag: 'PurchaseMembershipController');
|
||||||
|
},
|
||||||
|
(responseData) {
|
||||||
|
KRLogUtil.kr_i('✅ 获取公开支付方式成功', tag: 'PurchaseMembershipController');
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 解析支付方式数据
|
||||||
|
final paymentMethodsData = KRPaymentMethods.fromJson(responseData);
|
||||||
|
kr_paymentMethods.value = paymentMethodsData.list;
|
||||||
|
|
||||||
|
KRLogUtil.kr_i('📊 支付方式数据已加载,共 ${kr_paymentMethods.length} 种', tag: 'PurchaseMembershipController');
|
||||||
|
|
||||||
|
// 打印支付方式信息
|
||||||
|
for (var method in kr_paymentMethods) {
|
||||||
|
KRLogUtil.kr_i(
|
||||||
|
'💳 支付方式: ${method.name} (ID: ${method.id}, Platform: ${method.platform})',
|
||||||
|
tag: 'PurchaseMembershipController'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
print('═══════════════════════════════════════');
|
||||||
|
print('🔗 公开支付方式 API: /v1/public/payment/methods');
|
||||||
|
print('📊 支付方式列表:');
|
||||||
|
for (var i = 0; i < kr_paymentMethods.length; i++) {
|
||||||
|
final method = kr_paymentMethods[i];
|
||||||
|
print(' [$i] ${method.name} (platform: ${method.platform})');
|
||||||
|
}
|
||||||
|
print('═══════════════════════════════════════');
|
||||||
|
|
||||||
|
// 如果有支付方式,默认选择第一个
|
||||||
|
if (kr_paymentMethods.isNotEmpty) {
|
||||||
|
kr_selectedPaymentMethodIndex.value = 0;
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
KRLogUtil.kr_e('解析支付方式失败: $e', tag: 'PurchaseMembershipController');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/// 获取支付方式显示标题
|
/// 获取支付方式显示标题
|
||||||
String kr_getPaymentMethodTitle(KRPaymentMethod method) {
|
String kr_getPaymentMethodTitle(KRPaymentMethod method) {
|
||||||
if (method.platform == 'balance') {
|
if (method.platform == 'balance') {
|
||||||
|
|||||||
@ -95,4 +95,7 @@ abstract class Api {
|
|||||||
|
|
||||||
/// 解绑用户设备
|
/// 解绑用户设备
|
||||||
static const String kr_unbindUserDevice = "/v1/public/user/unbind_device";
|
static const String kr_unbindUserDevice = "/v1/public/user/unbind_device";
|
||||||
|
|
||||||
|
/// 获取可用支付方式(公开接口)
|
||||||
|
static const String kr_getPublicPaymentMethods = "/v1/public/payment/methods";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -271,4 +271,23 @@ class KRSubscribeApi {
|
|||||||
|
|
||||||
return right(baseResponse.model.kr_bl);
|
return right(baseResponse.model.kr_bl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// 获取公开的支付方式列表
|
||||||
|
Future<Either<HttpError, dynamic>> kr_getPublicPaymentMethods() async {
|
||||||
|
final Map<String, dynamic> data = <String, dynamic>{};
|
||||||
|
|
||||||
|
BaseResponse<dynamic> baseResponse =
|
||||||
|
await HttpUtil.getInstance().request<dynamic>(
|
||||||
|
Api.kr_getPublicPaymentMethods,
|
||||||
|
data,
|
||||||
|
method: HttpMethod.GET,
|
||||||
|
isShowLoading: false,
|
||||||
|
);
|
||||||
|
if (!baseResponse.isSuccess) {
|
||||||
|
return left(
|
||||||
|
HttpError(msg: baseResponse.retMsg, code: baseResponse.retCode));
|
||||||
|
}
|
||||||
|
|
||||||
|
return right(baseResponse.model);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user