Skip to content

REE-DIGITAL/flutter_zalo

 
 

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:
 let appId = Bundle.main.zalopayAppId
      let zalopayENV = ZPZPIEnvironment.sandbox
      if Bundle.main.zalopayENV != "SANDBOX" {
          let zalopayENV = ZPZPIEnvironment.production
      }
      ZaloPaySDK.sharedInstance()?.initWithAppId(appId, uriScheme:"ree.happymeal://open",environment: zalopayENV )

How To Use

Call FlutterZaloPaySDK.payOrder(zpToken: String) to use. Latest status of the order can be accesed through FlutterZaloPaySDK.currentStatus. Default will be null

Applicable Staus can be found in class FlutterZaloPaymentStatus

FlutterZaloPaymentStatus.PROCESSING
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 58.3%
  • Dart 20.5%
  • Java 12.6%
  • Swift 4.6%
  • Ruby 3.2%
  • C 0.6%
  • Kotlin 0.2%