app-starlock/lib/tools/wechat/pay/wx_pay_tool.dart
魏少阳 a7336b79cc 1、添加开完锁之后数据上传
2、打包apk上传到pre下载页
3、完成App启动数据请求优化问题
2024-09-02 18:09:57 +08:00

53 lines
1.3 KiB
Dart
Executable File

import 'package:fluwx/fluwx.dart';
import 'package:star_lock/tools/storage.dart';
///
/// 微信支付
///
///
class WxPayTool {
static Fluwx fluwx = Fluwx();
static bool isInit = false;
static void setAssociationUrl(String associationUrl) {
Storage.saveAssociationUrl(associationUrl);
}
static Future<void> init(String appId, String universalLink) async {
fluwx.registerApi(appId: appId, universalLink: universalLink);
}
static Future<void> pay(
Payment payment, WeChatResponseSubscriber listener) async {
if (!isInit) {
isInit = true;
final String _associationUrl = await Storage.getAssociationUrl();
await init(payment.appId, _associationUrl);
//回调
void responseListener(WeChatResponse response) {
if (response is WeChatPaymentResponse) {
//支付回调
listener.call(response);
}
}
//开启监听
fluwx.addSubscriber(responseListener);
}
fluwx.pay(which: payment);
}
static Payment mapToPayment(dynamic data) {
final Payment payment = Payment(
appId: data['appId'],
partnerId: data['partnerId'],
prepayId: data['prepayId'],
packageValue: data['packageValue'],
nonceStr: data['nonceStr'],
timestamp: int.tryParse(data['timeStamp']) ?? 0,
sign: data['sign'],
);
return payment;
}
}