Skip to content

damhung-1510/flutter_zalopay

 
 

Repository files navigation

flutter_zalopay_sdk

A Zalo Pay SDK .

pub package

Getting Started

NOTE: Get your appid from Zalo in order for ZaloPaySDK to work. In this readme we will use appId = 2553, as this is demo appID from Zalo

flutter_zalopay_sdk

A Flutter Wrapper for ease of interacting with ZaloPaySDK.

https://docs.zalopay.vn/docs/apptoapp/api.html#ngu-canh-su-dung

Android setup:

  • Set up your AndroidManifest.xml as below:
 <activity
      ...
     android:launchMode="singleTask"
     ...>
   <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="demozpdk"
                    android:host="app" />
    </intent-filter>
  
   <meta-data
            android:name="com.vng.zalo.sdk.APP_ID"
            android:value="2553" />
   <meta-data
            android:name="com.vng.zalo.sdk.URI_SCHEME"
            android:value="demozpdk://app" />
   <meta-data
            android:name="com.vng.zalo.sdk.ENVIRONMENT"
            android:value="SANDBOX" /> // OR value="PRODUCTION"
</activity>
           

iOS setup:

  • Set up your Info.plist as below
<key>CFBundleURLTypes</key>
    	<array>
    		<dict>
    			<key>CFBundleTypeRole</key>
    			<string>Editor</string>
    			<key>CFBundleURLName</key>
    			<string>com.flutterzalopay.flutterZaloSdkExample</string>
    			<key>CFBundleURLSchemes</key>
    			<array>
    				<string>demozpdk</string>
    			</array>
    		</dict>
    		<dict>
    			<key>CFBundleTypeRole</key>
    			<string>Editor</string>
    			<key>CFBundleURLName</key>
    			<string>com.flutterzalopay.flutterZaloSdkExample</string>
    			<key>CFBundleURLSchemes</key>
    			<array>
    				<string>zp-redirect-2553</string>
    			</array>
    		</dict>
    	</array>
<key>LSApplicationQueriesSchemes</key>
	<array>
		<string>zalo</string>
		<string>zalopay</string>
		<string>zalopay.api.v2</string>
	</array>
  • Add the following to your AppDelegate.swift file
...
import zpdk

override func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
        return ZaloPaySDK.sharedInstance().application(app, open:url, sourceApplication: "vn.com.vng.zalopay", annotation:nil)
    }
  • In didFinishLaunchingWithOptions, add the line:
  ZaloPaySDK.sharedInstance()?.initWithAppId(2553, uriScheme: "demozpdk://app", environment: .sandbox) ///NOTE: If you want to use production, replace .sandbox with .production

How To Use

Call FlutterZaloPaySDK.payOrder(zpToken: String) to use

Applicable Staus can be found in class FlutterZaloPaymentStatus

FlutterZaloPaymentStatus.FAILED
FlutterZaloPaymentStatus.SUCCESS
FlutterZaloPaymentStatus.CANCELLED

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Objective-C 48.5%
  • Dart 26.9%
  • Java 14.2%
  • Swift 4.9%
  • Ruby 4.5%
  • C 0.8%
  • Kotlin 0.2%