ApplePayPlugin.swift 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import Flutter
  2. import UIKit
  3. public class ApplePayPlugin: NSObject, FlutterPlugin {
  4. public static func register(with registrar: FlutterPluginRegistrar) {
  5. let channel = FlutterMethodChannel(name: "apple_pay", binaryMessenger: registrar.messenger())
  6. let instance = ApplePayPlugin()
  7. registrar.addMethodCallDelegate(instance, channel: channel)
  8. }
  9. public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
  10. switch call.method {
  11. case "purchase":
  12. guard let args = call.arguments as? [String: Any],
  13. let appleId = args["appleId"] as? String,
  14. let appAccountToken = args["appAccountToken"] as? String else {
  15. result(["success": false, "error": "Invalid arguments"])
  16. return
  17. }
  18. ApplePayManager.shared.startPay(appleId: appleId, token: appAccountToken) { isSuccess, receipt in
  19. result([
  20. "success": isSuccess,
  21. "receipt": receipt ?? ""
  22. ])
  23. }
  24. case "restore":
  25. ApplePayManager.shared.restoreAction { isSuccess, receipt in
  26. result([
  27. "success": isSuccess,
  28. "receipt": receipt ?? ""
  29. ])
  30. }
  31. case "check":
  32. result(nil)
  33. case "getPlatformVersion":
  34. result("iOS " + UIDevice.current.systemVersion)
  35. default:
  36. result(FlutterMethodNotImplemented)
  37. }
  38. }
  39. }