新增支付方式获取

This commit is contained in:
Rust 2025-10-18 16:08:06 +08:00
parent 89c7334caf
commit 040d7d746a
3 changed files with 70 additions and 0 deletions

View File

@ -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') {

View File

@ -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";
} }

View File

@ -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);
}
} }