agile_pay.dart 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  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, AgilePayState payState) {
  13. IAgilePay? iAgilePay;
  14. if (payInfo is AliPayInfo) {
  15. iAgilePay = Alipay(payInfo);
  16. } else if (payInfo is WechatPayInfo) {
  17. iAgilePay = WechatPay(payInfo);
  18. } else if (payInfo is ApplePayInfo) {
  19. iAgilePay = ApplePay(payInfo);
  20. }
  21. realPay = iAgilePay;
  22. if (iAgilePay != null) {
  23. iAgilePay.setPayListener(payState);
  24. iAgilePay.pay();
  25. } else {
  26. payState.payError(AgilePayCode.payCodeNotSupport,
  27. AgilePayCode.getMessageByCode(AgilePayCode.payCodeNotSupport));
  28. }
  29. }
  30. static void dispose() {
  31. realPay?.dispose();
  32. }
  33. }