Skip to content

Commit

Permalink
added paymentSDKNetworks
Browse files Browse the repository at this point in the history
  • Loading branch information
amr-Magdy-PT committed Aug 28, 2024
1 parent 0ac933b commit 8304ff4
Show file tree
Hide file tree
Showing 13 changed files with 191 additions and 38 deletions.
42 changes: 21 additions & 21 deletions .idea/libraries/Dart_SDK.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions .idea/libraries/Flutter_Plugins.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 11 additions & 6 deletions example/ios/Runner.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
C51BBCB22C7E4B3F00FDBA5C /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = "<group>"; };
FD85AD2E020A851A958CCE29 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */

Expand Down Expand Up @@ -104,6 +105,7 @@
97C146F01CF9000F007C117D /* Runner */ = {
isa = PBXGroup;
children = (
C51BBCB22C7E4B3F00FDBA5C /* Runner.entitlements */,
97C146FA1CF9000F007C117D /* Main.storyboard */,
97C146FD1CF9000F007C117D /* Assets.xcassets */,
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
Expand Down Expand Up @@ -357,8 +359,9 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = BB8XVSP6H6;
DEVELOPMENT_TEAM = E4D8R9ZYJ8;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
Expand All @@ -374,7 +377,7 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = com.paytabs.flutterPaytabsBridgeExample;
PRODUCT_BUNDLE_IDENTIFIER = com.paytabs.pt2sdk.sample;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
Expand Down Expand Up @@ -495,8 +498,9 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = BB8XVSP6H6;
DEVELOPMENT_TEAM = E4D8R9ZYJ8;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
Expand All @@ -512,7 +516,7 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = com.paytabs.flutterPaytabsBridgeExample;
PRODUCT_BUNDLE_IDENTIFIER = com.paytabs.pt2sdk.sample;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
Expand All @@ -527,8 +531,9 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = BB8XVSP6H6;
DEVELOPMENT_TEAM = E4D8R9ZYJ8;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
Expand All @@ -544,7 +549,7 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = com.paytabs.flutterPaytabsBridgeExample;
PRODUCT_BUNDLE_IDENTIFIER = com.paytabs.pt2sdk.sample;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
disableMainThreadChecker = "YES"
disablePerformanceAntipatternChecker = "YES"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
Expand Down
5 changes: 5 additions & 0 deletions example/ios/Runner/Runner.entitlements
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict/>
</plist>
11 changes: 9 additions & 2 deletions example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import 'dart:io' show Platform;
import 'package:flutter/material.dart';
import 'package:flutter_paytabs_bridge/BaseBillingShippingInfo.dart';
import 'package:flutter_paytabs_bridge/IOSThemeConfiguration.dart';
import 'package:flutter_paytabs_bridge/PaymentSDKNetworks.dart';
import 'package:flutter_paytabs_bridge/PaymentSDKQueryConfiguration.dart';
import 'package:flutter_paytabs_bridge/PaymentSDKSavedCardInfo.dart';
import 'package:flutter_paytabs_bridge/PaymentSdkApms.dart';
Expand Down Expand Up @@ -46,15 +47,16 @@ class _MyAppState extends State<MyApp> {
amount: 20.0,
showBillingInfo: true,
forceShippingInfo: false,
currencyCode: "EGP",
merchantCountryCode: "EG",
currencyCode: "SAR",
merchantCountryCode: "AE",
billingDetails: billingDetails,
shippingDetails: shippingDetails,
alternativePaymentMethods: apms,
linkBillingNameWithCardHolderName: true);
final theme = IOSThemeConfigurations();
configuration.iOSThemeConfigurations = theme;
configuration.tokeniseType = PaymentSdkTokeniseType.MERCHANT_MANDATORY;

return configuration;
}

Expand Down Expand Up @@ -210,6 +212,9 @@ class _MyAppState extends State<MyApp> {
}

Future<void> applePayPressed() async {
List<PaymentSDKNetworks> networks = [];
networks.add(PaymentSDKNetworks.visa);
networks.add(PaymentSDKNetworks.amex);
var configuration = PaymentSdkConfigurationDetails(
profileId: "*Profile id*",
serverKey: "*server key*",
Expand All @@ -222,6 +227,8 @@ class _MyAppState extends State<MyApp> {
merchantCountryCode: "ae",
merchantApplePayIndentifier: "merchant.com.bunldeId",
simplifyApplePayValidation: true);
currencyCode: "SAR",

FlutterPaytabsBridge.startApplePayPayment(configuration, (event) {
setState(() {
if (event["status"] == "success") {
Expand Down
2 changes: 1 addition & 1 deletion example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ packages:
path: ".."
relative: true
source: path
version: "2.6.15"
version: "2.6.16"
flutter_test:
dependency: "direct dev"
description: flutter
Expand Down
2 changes: 1 addition & 1 deletion ios/Classes/Constants.swift
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ let pt_ios_button_font = "pt_ios_button_font"
let pt_ios_title_font = "pt_ios_title_font"
let pt_ios_input_background_color = "pt_ios_input_background_color"
let pt_ios_input_background_color_dark = "pt_ios_input_background_color_dark"

let pt_payment_networks = "pt_payment_networks"

let pt_ios_logo = "pt_ios_logo"
let pt_transaction_type = "pt_transaction_type"
Expand Down
20 changes: 19 additions & 1 deletion ios/Classes/SwiftFlutterPaytabsBridgePlugin.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import Flutter
import UIKit
import PaymentSDK
import PassKit
let channelName = "flutter_paytabs_bridge"
let streamChannelName = "flutter_paytabs_bridge_stream"

Expand Down Expand Up @@ -61,6 +62,16 @@ public class SwiftFlutterPaymentSDKBridgePlugin: NSObject, FlutterPlugin {
}
return apms
}
private func generatePaymentNetworks(paymentsArray: [String]) -> [PKPaymentNetwork] {
var networks = [PKPaymentNetwork]()
for paymentNetwork in paymentsArray {
if let network = PKPaymentNetwork.fromString(paymentNetwork) {
networks.append(network)
}
}

return networks
}
private func startCarPayment(arguments: [String : Any]) {
let configuration = generateConfiguration(dictionary: arguments)
if let rootViewController = getRootController() {
Expand Down Expand Up @@ -217,7 +228,6 @@ public class SwiftFlutterPaymentSDKBridgePlugin: NSObject, FlutterPlugin {
if let transactionType = dictionary[pt_transaction_type] as? String {
configuration.transactionType = TransactionType.init(rawValue: transactionType) ?? .sale
}
// public var paymentNetworks: [PKPaymentNetwork]?
if let themeDictionary = dictionary[pt_ios_theme] as? [String: Any],
let theme = generateTheme(dictionary: themeDictionary) {
configuration.theme = theme
Expand All @@ -235,6 +245,12 @@ public class SwiftFlutterPaymentSDKBridgePlugin: NSObject, FlutterPlugin {
configuration.cardDiscounts = generateDiscountDetails(dictionary: discountsDictionary)
}

if let paymentNetworksStr = dictionary[pt_payment_networks] as? String,
!paymentNetworksStr.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty {
let paymentNetworks = paymentNetworksStr.components(separatedBy: ",")
configuration.paymentNetworks = generatePaymentNetworks(paymentsArray: paymentNetworks)
}

configuration.metaData = ["PaymentSDKPluginName": "flutter", "PaymentSDKPluginVersion": "2.6.16"]
return configuration
}
Expand Down Expand Up @@ -440,3 +456,5 @@ extension SwiftFlutterPaymentSDKBridgePlugin: PaymentManagerDelegate {
eventSink(code: 0, message: "Cancelled", status: "event")
}
}


2 changes: 1 addition & 1 deletion ios/flutter_paytabs_bridge.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ A new flutter plugin project.
s.source_files = 'Classes/**/*'
s.dependency 'Flutter'
s.platform = :ios, '11.0'
s.dependency "PayTabsSDK", "6.6.18"
s.dependency "PayTabsSDK", "6.6.19"
s.static_framework = true
# Flutter.framework does not contain a i386 slice.
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }
Expand Down
99 changes: 99 additions & 0 deletions lib/PaymentSDKNetworks.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@

enum PaymentSDKNetworks {
amex,
pagoBancomat,
bancontact,
cartesBancaires,
chinaUnionPay,
dankort,
discover,
eftpos,
electron,
elo,
idCredit,
interac,
JCB,
mada,
maestro,
masterCard,
mir,
privateLabel,
quicPay,
suica,
visa,
vPay,
barcode,
girocard,
waon,
nanaco,
postFinance,
tmoney,
meeza,
}

extension PaymentSDKNetworksExtension on PaymentSDKNetworks {
String get name {
switch (this) {
case PaymentSDKNetworks.amex:
return "amex";
case PaymentSDKNetworks.pagoBancomat:
return "pagoBancomat";
case PaymentSDKNetworks.bancontact:
return "bancontact";
case PaymentSDKNetworks.cartesBancaires:
return "cartesBancaires";
case PaymentSDKNetworks.chinaUnionPay:
return "chinaUnionPay";
case PaymentSDKNetworks.dankort:
return "dankort";
case PaymentSDKNetworks.discover:
return "discover";
case PaymentSDKNetworks.eftpos:
return "eftpos";
case PaymentSDKNetworks.electron:
return "electron";
case PaymentSDKNetworks.elo:
return "elo";
case PaymentSDKNetworks.idCredit:
return "idCredit";
case PaymentSDKNetworks.interac:
return "interac";
case PaymentSDKNetworks.JCB:
return "JCB";
case PaymentSDKNetworks.mada:
return "mada";
case PaymentSDKNetworks.maestro:
return "maestro";
case PaymentSDKNetworks.masterCard:
return "masterCard";
case PaymentSDKNetworks.mir:
return "mir";
case PaymentSDKNetworks.privateLabel:
return "privateLabel";
case PaymentSDKNetworks.quicPay:
return "quicPay";
case PaymentSDKNetworks.suica:
return "suica";
case PaymentSDKNetworks.visa:
return "visa";
case PaymentSDKNetworks.vPay:
return "vPay";
case PaymentSDKNetworks.barcode:
return "barcode";
case PaymentSDKNetworks.girocard:
return "girocard";
case PaymentSDKNetworks.waon:
return "waon";
case PaymentSDKNetworks.nanaco:
return "nanaco";
case PaymentSDKNetworks.postFinance:
return "postFinance";
case PaymentSDKNetworks.tmoney:
return "tmoney";
case PaymentSDKNetworks.meeza:
return "meeza";
default:
return "unknown";
}
}
}
Loading

0 comments on commit 8304ff4

Please sign in to comment.