Golf (v2)

1. Chuẩn bị các thông số để sử dụng SDK

//Android
VNPAY_ANDROID_MAVEN_REPO_URL //được VNPAY cung cấp
VNPAY_ANDROID_SDK_GOLF_VERSION //được VNPAY cung cấp

//iOS
VNPAY_IOS_SDK_GOLF_URL //được VNPAY cung cấp
VNPAY_IOS_SDK_COREKIT //được VNPAY cung cấp

//thông tin chung cả android và ios
GOLF_LICENSE_TEST //được VNPAY cung cấp
GOLF_LICENSE_KEY_TEST //được VNPAY cung cấp
GOLF_LICENSE_LIVE //được VNPAY cung cấp
GOLF_LICENSE_KEY_LIVE //được VNPAY cung cấp

2. Cấu hình SDK vào Project

Cấu hình Maven để tải SDK và các phụ thuộc về

File: project/build.gradle
def VNPAY_ANDROID_MAVEN_REPO_URL = "" //được VNPAY cung cấp

allprojects {
    repositories {
        google()
        mavenCentral()
        maven {
            url VNPAY_ANDROID_MAVEN_REPO_URL
        }
    }
}
File: project/app/build.gradle
def VNPAY_ANDROID_SDK_GOLF_VERSION = "" //được VNPAY cung cấp

android {
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
    // enable viewbiding
    buildFeatures {
        viewBinding = true
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    //---------- SDK GOLF --------------
    implementation 'androidx.core:core-ktx:1.3.2'
    implementation platform('org.jetbrains.kotlin:kotlin-bom:1.8.0')
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.google.android.gms:play-services-location:18.0.0'
    //COMPAT
    implementation("androidx.appcompat:appcompat:1.1.0-rc01")
    implementation "androidx.cardview:cardview:1.0.0"
    implementation 'com.google.android.material:material:1.2.1'
    //COMPAT for old ui
    implementation("androidx.legacy:legacy-support-v4:1.0.0")
    //CONSTRAINT LAYOUT
    implementation("androidx.constraintlayout:constraintlayout:1.1.3")

//
    // GSON FOR NETWORK
    implementation 'com.google.code.gson:gson:2.8.5'
    // LOAD IMAGE
    implementation 'com.squareup.picasso:picasso:2.5.2'
    // OKHTTP NETWORK
    implementation('com.squareup.okhttp3:okhttp:3.12.12')
//
//    //MULTIDEX
    implementation 'androidx.multidex:multidex:2.0.1'
//
    //RECYCLER VIEW
    implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha01'
    //VIEWPAGER
    implementation 'androidx.viewpager:viewpager:1.0.0'
//
    // ViewModel and LiveData
    implementation("androidx.lifecycle:lifecycle-extensions:2.0.0")
    // alternately - if using Java8, use the following instead of lifecycle-compiler
    implementation("androidx.lifecycle:lifecycle-common-java8:2.0.0")
    implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0")
//
    //RETROFIT
    implementation "com.squareup.retrofit2:retrofit:2.6.0"
    implementation "com.squareup.retrofit2:converter-gson:2.5.0"
    implementation("com.squareup.okhttp3:logging-interceptor:3.14.0")

    implementation 'com.github.bumptech.glide:glide:4.9.0'
    implementation 'com.github.florent37:runtime-permission-kotlin:1.1.2'
    implementation 'com.google.android:flexbox:2.0.1'
    implementation('com.vnpay.supersecure:supersecure:1.0.22')
    implementation 'com.facebook.shimmer:shimmer:0.5.0@aar'
//    // ZXING FOR QR
    implementation 'com.google.zxing:core:3.3.2'
    implementation(group: 'com.vnpay.golflib', name: 'golflib', version: VNPAY_ANDROID_SDK_GOLF_VERSION, ext: 'aar')
    //----------- END SDK GOLF ----------
}: 

3. Code demo

3.1. Setup các thông tin đầu vào và mở SDK

fun openSDKGolf(context: Context?) {
    //Thiết lập các thông số đầu vào cho sdk để vào màn đặt vé
    val GOLF_LICENSE_TEST = "" //bắt buộc do VNPAY cung cấp
    val GOLF_LICENSE_KEY_TEST = "" //bắt buộc do VNPAY cung cấp
    val GOLF_LICENSE_LIVE = "" //bắt buộc do VNPAY cung cấp
    val GOLF_LICENSE_KEY_LIVE = "" //bắt buộc do VNPAY cung cấp
    val phone = "" //bắt buộc, sđt khách hàng sử dụng SDK, do đối tác truyền vào SDK
    val userName = "" //không bắt buộc, do đối tác truyền vào SDK
    val ottToken = "" //không bắt buộc
    val bankToken = "" //bắt buộc, do đối tác truyền vào SDK
    val language = "vi" //bắt buộc, nhận các giá trị: vi, en, do đối tác truyền vào SDK
    val email = "" //không bắt buộc, do đối tác truyền vào SDK
    val REQUEST_OPEN_SCREEN_VE_TAU = 2010
    val debug: Boolean //true, false
    
    val isLive = false //bắt buộc
    var license = ""
    var key = ""
    if (isLive) {
        license = GOLF_LICENSE_LIVE
        key = GOLFN_LICENSE_KEY_LIVE
        debug = false
    } else {
        license = GOLF_LICENSE_TEST
        key = GOLF_LICENSE_KEY_TEST
        debug = true
    }
    
    val config = SDKConfig.build(this)
            .setLicense(license)
            .setKey(key)
            .setOttToken(ottToken)
            .setBankToken(bankToken)
            .setPhone(phone)
            .setIntentFilter("golf_filter")
            .setFullName(userName)
            .setMail(email)
            .setLanguage(language)
    if (error != null) {
        Toast.makeText(context, "Có lỗi khi mở SDK Golf V2", Toast.LENGTH_LONG).show()
        Log.e("TAG", "Có lỗi xảy ra khi mở SDK Golf ver2")
    }
}

3.2. Mô tả thông tin thanh toán

{
  "payment": {
    "paymentCode": "GOLF123", //Mã thanh toán dùng cho billing truy vấn đơn hàng
    "amount": 5500000, // Tổng tiền thanh toán tính tại SDK GOLF
    "transactionId": "9283762898376437829", // ID thanh toán trong server
    "serviceCode": 91237829,
    "providerCode": 19273891,
    "allowInvoice": false,  
    "hotline": "1900555520",
    "expireDate": "2023-08-29 18:45:00",// thời gian hết hạn thanh toán 
    "description": "Thanh toan đơn hàng đặt golf"
  },
  "orderInfo": [
    {
      "title": "Nội dung giao dịch",
      "type": "GROUP",
      "values": [
        {
          "title": "Dịch vụ",
          "value": "Đặt golf",
          "type": "TITLE_VALUE"
        },
        {
          "title": "Mã thanh toán",
          "value": "GOLF123",// Mã thanh toán dùng cho billing truy vấn đơn hàng
          "type": "DETAIL",
          "detail": {
            "title": "Chi tiết đơn hàng",
            "type": "GROUP",
            "values": [
              {
                "title": "Chi tiết giá",
                "type": "GROUP",
                "values": [
                  {
                    "title": "Tổng tiền  (VND)",
                    "value": "1.500.000",// số tiền trước khuyến mại
                    "type": "TITLE_VALUE"
                  },
                  {
                    "title": "Giảm giá (VND)",
                    "value": "1.500.000", // Số tiền khuyến mại, nếu k có KM giá trị =0 
                    "type": "TITLE_VALUE"
                  },
                  {
                    "title": "Tổng tiền thanh toán (VND)",
                    "value": "1.500.000",// Số tiền sau khuyến mại
                    "type": "TITLE_VALUE"
                  }
                ]
              }
            ]
          }
        }
      ]
    },
    {
      "title": "Lưu ý",
      "type": "NOTE",
      "value": "Trường hợp Sau 30 phút bạn không nhận được thông tin mã đặt chỗ gửi vào email/SMS vui lòng liên hệ: <a href='tel:1900555520'>1900555520 </a> để được hỗ trợ"
    }
  ]
}

3.3. Về Home của SDK

SDKConfig.popToHomeSDK()

3.4. Đóng SDK

SDKConfig.closeSDK();

Last updated