agile_pay.dart 1.5 KB

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