agile_pay.dart 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import 'package:electronic_assistant/sdk/pay/alipay/alipay.dart';
  2. import 'package:electronic_assistant/sdk/pay/listener/i_agile_pay.dart';
  3. import 'package:electronic_assistant/sdk/pay/wxpay/wechat_pay.dart';
  4. import 'package:electronic_assistant/sdk/pay/wxpay/wechat_pay_info.dart';
  5. import 'alipay/ali_pay_info.dart';
  6. import 'applepay/apple_pay.dart';
  7. import 'applepay/apple_pay_info.dart';
  8. import 'code/agile_pay_code.dart';
  9. import 'listener/agile_pay_state.dart';
  10. class AgilePay {
  11. static IAgilePay? realPay;
  12. static void startPay(dynamic payInfo,
  13. {required AgilePaySuccess success,
  14. required AgilePayError payError,
  15. required AgileError error,
  16. AgilePayBefore? before}) {
  17. IAgilePay? iAgilePay;
  18. if (payInfo is AliPayInfo) {
  19. iAgilePay = Alipay(payInfo);
  20. } else if (payInfo is WechatPayInfo) {
  21. iAgilePay = WechatPay(payInfo);
  22. } else if (payInfo is ApplePayInfo) {
  23. iAgilePay = ApplePay(payInfo);
  24. }
  25. realPay = iAgilePay;
  26. if (iAgilePay != null) {
  27. iAgilePay.setPayListener(AgilePayStateImpl(
  28. paySuccessListener: success,
  29. payErrorListener: payError,
  30. errorListener: error,
  31. payBeforeListener: before));
  32. iAgilePay.pay();
  33. } else {
  34. payError(AgilePayCode.payCodeNotSupport,
  35. AgilePayCode.getMessageByCode(AgilePayCode.payCodeNotSupport));
  36. }
  37. }
  38. static void dispose() {
  39. realPay?.dispose();
  40. }
  41. }