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 init(String appId, String universalLink) async { fluwx.registerApi(appId: appId, universalLink: universalLink); } static Future 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; } }