Skip to content

Repository files navigation

HyperPay SDK Plugin

The HyperPay platform offers a complete, easy-to-use guide to enable seamless integration of our end-to-end payment gateway for mobile and desktop browsers. Through a unified API, you can enable and gain access to all platform features. Choose one of the options below to quickly get started

pub packageDiscordGitHubLicense

Support ReadyUI

  • VISA,MasterCard
  • STC
  • Apple Pay
  • MADA( Saudi Arabia )

Android Setup

  1. Open android/app/build.gradle and add the following lines
 implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation(name: "oppwa.mobile-4.9.0-release", ext: 'aar')
debugImplementation(name: "ipworks3ds_sdk", ext: 'aar')
releaseImplementation(name: "ipworks3ds_sdk_deploy", ext: 'aar')
implementation "com.google.android.material:material:1.6.1"
implementation "androidx.appcompat:appcompat:1.5.1"
implementation 'com.google.android.gms:play-services-wallet:19.1.0'
implementation "androidx.browser:browser:1.4.0"
  1. Open app/build.gradle and make sure that the minSdkVersion is 21

  2. Open your AndroidManifest.xml, and put intent-filter inside activity.

<application
<activity
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
<data android:scheme="com.testpayment.payment" />
</intent-filter>
</activity>
</application>

Note about Intent-filter scheme

The Scheme field must match the InAppPaymentSetting.shopperResultUrl field.

It's used when making a payment outside the app (Like open browser) and back into the app

IOS Setup

  1. Open Podfile, and paste the following inside of it:
pod'hyperpay_sdk',:git=>'https://github.com/ahmedelkhyary/hyperpay_sdk.git'
$static_framework =['hyperpay_plugin']pre_installdo |installer|
Pod::Installer::Xcode::TargetValidator.send(:define_method,:verify_no_static_framework_transitive_dependencies){}installer.pod_targets.eachdo |pod|
if $static_framework.include?(pod.name)defpod.build_type;Pod::BuildType.static_libraryendendendend
  1. Add Url Scheme to the list of bundle identifiers. The Url Scheme field must match the InAppPaymentSetting.shopperResultUrl field.


Setup HyperPay Environment Configuration

define instanse of FlutterHyperPay

lateFlutterHyperPay flutterHyperPay ;
flutterHyperPay =FlutterHyperPay(
shopperResultUrl:InAppPaymentSetting.shopperResultUrl, // return back to app
paymentMode:PaymentMode.test, // test or live
lang:InAppPaymentSetting.getLang(), );

create a method to get the checkoutId

 /// URL TO GET CHECKOUT ID FOR TEST
/// http://dev.hyperpay.com/hyperpay-demo/getcheckoutid.php
getCheckOut() async {
payRequestNow(checkoutId: '629D8A95DE267040C10D29E558F8BE37.uat01-vm-tx04', cardName: "VISA");
}

send checkoutId and brandName to Plugin

payRequestNow({required String cardName, required String checkoutId}) async {
PaymentResultData paymentResultData;
if (cardName.toLowerCase() ==
InAppPaymentSetting.applePay.toLowerCase()) {
paymentResultData = await flutterHyperPay.payWithApplePay(
applePay: ApplePay(
/// ApplePayBundel refer to Merchant ID
applePayBundel: InAppPaymentSetting.merchantId,
checkoutId: checkoutId,
countryCode: InAppPaymentSetting.countryCode,
currencyCode: InAppPaymentSetting.currencyCode),
);
} else {
paymentResultData = await flutterHyperPay.readyUICards(
readyUI: ReadyUI(
brandName: cardName,
checkoutId: checkoutId,
setStorePaymentDetailsMode: false,
),
);
}
}

when the plugin closes, check the payment status

 if (paymentResultData.paymentResult == PaymentResult.success ||
paymentResultData.paymentResult == PaymentResult.sync) {
// do something
}
 class InAppPaymentSetting {
static const String applePay="APPLEPAY";
// shopperResultUrl : this name must like scheme in intent-filter , url scheme in xcode
static const String shopperResultUrl= "com.testpayment.payment";
static const String merchantId= "MerchantId";
static const String countryCode="SA";
static const String currencyCode="SAR";
static getLang() {
if (Platform.isIOS) {
return "en"; // ar
} else {
return "en_US"; // ar_AR
}
}
}

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages