Lịch sử cập nhật

Phiên bản Ngày thực hiện Nội dung Người thực hiện
2.0 09/26/2016 Tạo mới Khúc Chí Huân

Giới thiệu

VTCPaySDK là framework để thực hiện thanh toán giữa cổng VTCPay và đơn vị trung gian thanh toán và App Merchant là trong vai trò là đơn vị bán hàng, sử dụng chức năng thanh toán trực tuyến qua ví điện tử VTCPay, ngân hàng và thẻ quốc tế.

CÀI ĐẶT CHO IOS

1.Development Environment: Minimum iOS Target 6.0

Minimum iOS Target 6.0Ghi chú: Hỗ trợ cấu trúc armv7, armv7s, arm64 và các cấu trúc (+ i386 x86_64 cho máy ảo)

2.Tương thích thư viện

SDKVTCPay hỗ trợ các phiên bản từ iOS 6.0 trở lên. Hỗ trợ tất cả các cấu trúc gồm armv7, armv7s, arm64 và các cấu trúc +i386, x86_64 cho máy ảo.

3.Công cụ Xcode

Chúng tôi sử dụng Xcode 8 tạo thư viện và project demo. Bạn có thể gặp lỗi nếu sử dụng các version xcode thấp hơn. Chúng tôi khuyên bạn nên sử dụng những phiên bản Xcode mới nhất.

4.Project Demo

Chúng tôi cung một project demo giúp bạn dễ dàng sử dụng SDK này. Demo và SDK bạn có thể down tại trang web của chúng tôi.

Cài đặt SDK cho project của bạn

SDK của chúng tôi được xây dựng hỗ trợ đối tác tích hợp và sử dụng dễ dàng . Dưới đây là các bước thực hiện chi tiết

1.Tạo mã AppID:

Tạo mã AppID (Mã ứng dụng) cho cho ứng dụng tích hợp SDKVTCPay.AppID này sẽ đóng vai trò định danh cho ứng dụng của bạn trên hệ thống VTCPay. Đây là tài liệu mô tả kết nối thanh toán giữa cổng VTC Pay •Truy cập vào trang web của chúng tôi: https://pay.vtc.vn/ •Đăng ký tài khoản VTCPay, và đăng nhập vào trang web. •Sau đó vào mục “Tích hợp thang toán” và chọn “Tích hợp mobile”. •Và điền các thông tin cần thiết vào và Xác nhận.

Đăng Ký

Sau đó chọn “Tích hợp mobile” để xem Mã ứng dụng của ứng dụng vừa tạo

Đăng Ký

Import thư viện vào Project:

• Kéo thả SDKVTCPay.framework vào project của bạn. • Chọn ‘Create groups’ và “Copy items if needed’ để copy SDK vào project của bạn.

Đăng Ký

3.Embedded Binaries framework

Thực hiên như sau:

Đăng Ký

4.Làm việc với SDK

Đăng Ký

Các class, hàm SDKVTCPay cung cấp để làm việc, theo như dưới đây. a. TheAppDelegate a. TheAppDelegate • Trong class AppDelegate.m của bạn, thực hiện

#import < SDKVTCPay/VTCSDKPayAPI.h > #import < SDKVTCPay / VTCPayNaviController.h > 

Tạo hàm để set lại RootViewController

(void)setRootViewController { ;
//NSString *dateString = @Html.Raw(2016-05-19) 10:20:25 NSDateFormatter *formatter = [[NSDateFormatter alloc] init];)
//[formatter setDateFormat:yyyy - MM - dd HH: mm:ss)]; NSDate* date = [NSDate date];
[formatter setDateFormat:yyMMddHHmmss
NSString * numericString = [formatter stringFromDate: date];
int appID = [_viewController.appID.text intValue];
double amount = [_viewController.amount.text doubleValue];
bool sethiddenVTCPay = false;
bool sethiddenDomesticBank = false; bool sethiddenForeignBank = false;
sethiddenVTCPay = _viewController.switchHiddenVTCPay.isOn; sethiddenForeignBank = _viewController.switchHiddenForeignBank.isOn; sethiddenDomesticBank = _viewController.switchHiddenDomesticBank.isOn;
NSString * currency;
if (_viewController.currencySegmented.selectedSegmentIndex == 0
{
// payment with VND
currency = @VND;
}
else
{
//payment with USD currency ='USD;'
}
[[VTCSDKPayAPI sharedManager]r> createOrder: numericString appID:appID passConnect:_viewController.passConnect.text userNameSaler:_viewController.userNameSalser.text orderCode:_viewController.orderCode.text amount:amount currency:currency description:_viewController.descriptionVTC.text defaultLanguage:0];
NSLog(amount %lf, amount
[[VTCSDKPayAPI sharedManager]
setHidePaymentTypeWithVTCPay: sethiddenVTCPay domesticBank:sethiddenDomesticBank foreignBank:sethiddenForeignBank];
VTCPayNaviController * navi = [[VTCPayNaviController alloc] init]; [self.window setRootViewController:navi];
}

•Thoát SDK: Bạn cấu hình một NotificationCenter để bắt sự kiện thoát SDK của chúng tôi và đặt lại RootViewController ban đầu:

(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions: (NSDictionary*)launchOptions {
// Override point for customization after application launch.
self.window = [[UIWindow alloc]
initWithFrame:[[UIScreen mainScreen]
bounds]]; self.window.backgroundColor = [UIColor whiteColor];
// Override point for customization after application launch.
_viewController = [[ViewController alloc]
init]; self.window.rootViewController = _viewController;
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(handleUpdatedData:) name:@ExitSDKVTCPay object:nil];
return YES;
}

b.TheViewController
Trong ViewController mà bạn chứa Event gọi đến SDK của chúng tôi, Bạn có thể gọi phương thức[[AppDelegate shareInstance] setRootViewController] (Lưu ý: tên phương thức có thể thay đổi tuỳ thuộc bạn tạo ở class Appdelegate hay bạn có thể thực hiện thay đổi RootViewController bằng cásh khác).

Các Class, phương thức hỗ trợ của SDKVTCPay:

• Class VTCPayNaviController: Để khởi tạo viewcontroller vào SDKVTCPay:

• Class VTCSDKPayAPI: Gồm API để thực hiện kết nối giữa đối tác vàc hệ thống VTCPay:
Url gửi thông tin thanh toán đơn hàng:

API: (void)createOrder:(NSString*)transDate appID:(int)appID passConnect: (NSString*)passConnect userNameSaler:(NSString*)userNameSaler orderCode:(NSString*)orderCode amount:(double)amount currency:(NSString*)currency description:(NSString*)description defaultLanguage: (int)defaultLanguage;
transDate::thời gian tạo đơn hàng
appID:Mã ứng dụng lấy từ mục Quản trị tích hợp trên trang https:// pay.vtc.vn/
passConnect:Mật khẩu kết nối lấy từ trường Mật khẩu kết nối khi tạo ứng dụng trên tích hợp mobile.
userNameSaler:Số điện thoại tạo tài khoản VTCPay để tạo ứng dụng chứa AppID.
accountName:Tên đối tác, nhập từ bên đối tac sử dụng SDKVTCPay.
amount:Giá trị đơn hàng.
email:Email nhập vào khi tạo tài khoản VTCPay để
tạo ứng dụng chứa AppID.
description:Mô tả đơn hàng lấy từ trường Mô tả ứng
dụng khi tạo ứng dụng trên tích hợp mobile.
currency:Loại tiền tệ thanh toán, hỗ trợ VND và USD
defaultLanguage:Ngôn ngữ tiếng anh hoặc tiếng việt
void)setHidePaymentTypeWithVTCPay:(bool)vtcPay domesticBank: (bool)domesticBank foreignBank:(bool)foreignBank;

o vtcPay = true thì ẩn phương thức thanh quá qua ví VTC Pay o domesticBank = true thì ẩn phương thức thanh toán qua bank nội địa o foreignBank = true thì ẩn phương thức thanh toán qua bank quốc tế

Đăng Ký

CÀI ĐẶT CHO ANDROID

1.Gradle Setup

Thêm thư viện recyclerview vào LibVTCPay2

compile(name: 'libvtcpay2.0', ext: 'aar')compile 'com.android.support:appcompat-v7:25.1.0' compile 'com.android.support:recyclerview-v7:25.1.0'compile 'com.squareup.retrofit2:retrofit:2.0.0'compile 'com.squareup.retrofit2:converter-gson:2.0.0' compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0'compile 'com.squareup.okhttp3:okhttp:3.2.0'compile 'com.squareup.picasso:picasso:2.5.2'compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.1.0'

1.2.Mở file build.gradle (Module: Project) và thêm vào dòng sau:

allprojects {repositories {jcenter() flatDir {dirs 'libs'}}}

2. Config AndroidManifest.xml

2.1. Thêm permisson

< uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" / >< uses-permission android:name="android.permission.INTERNET" / >2.2.  Khai báo activity< activity android : name="com.lib.vtcpay.activity.VTCPayActivity" android : configChanges ="orientation|keyboardHidden|screenSize" android : screenOrientation="portrait" / >

3.Add required code

3.1. Khởi tạo model, thêm dòng code sau vào phương thức onCreate trong Activity:

//init VTCPaySDK InitModel initModel = new InitModel(); initModel.setSandbox(boolean);//[Required] set enviroment test, default is true initModel.setAmount(long); //[Required] your amount initModel.setOrderCode(String);//[Required] your order code initModel.setAppID(long); //[Required] your AppID that registered with VTC initModel.setSecretKey (String); //[Required] your secret key that registered with VTC initModel.setReceiverAccount(String);//[Required] your account initModel.setDrawableLogoMerchant(R.mipmap.ic_launcher); //[Option] Your logo initModel.setCurrency(VTCPaySDK.VND); //[Option] set currency, default is VND initModel.setDescription(String); //[Option] description VTCPaySDK.getInstance().setInitModel(initModel); //init model

Trong đó:
• Sandbox (boolean): [Required] môi trường test hay thật
• Amount (long): [Required] số tiền cần thanh toán (VNĐ)
• OrderCode (String): [Required] mã đơn hàng của bạn
• AppID (long): [Required] AppID của bạn đã tạo trên trang web tích hợp của VTC Pay
• SecretKey (String): [Required] mã bí mật của bạn đã tạo trên trang web tích hợp của VTC Pay
• ReceiverAccount (String): [Required] tài khoản của bạn trên trang web tích hợp VTC Pay
• Description (String): [Option] mô tả đơn hàng
• DrawableLogoMerchant (ResDrawable): [Option] Logo của bạn
• Currency(int): [Option] đơn vị tiền tệ (VND hoặc USD)

3.2. Gọi phương thức thanh toán:

3.1. Khởi tạo model, thêm dòng code sau vào phương thức onCreate trong Activity:

VTCPaySDK.getInstance().payment(MainActivity.this, new ICallBackPayment() { Overridepublic void onPaymentSuccess(PaymentModel paymentModel) {Toast.makeText(MainActivity.this, "payment success transctionID " + paymentModel.getTransactionID(), Toast.LENGTH_SHORT).show();}Overridepublic void onPaymentError(int status, String error, String bankCode) { Toast.makeText(MainActivity.this, "Payment error " + error, Toast.LENGTH_SHORT).show(); Log.d("mytag", "Payment error"+error);}Overridepublic void onPaymentCancel() {Toast.makeText(MainActivity.this, "Payment cancel", Toast.LENGTH_SHORT).show();}});

Trong đó:
• MainActivity: context truyền vào
• ICallBackPayment: callback trả về khi thanh toán thành công
• PaymentModel: model khi thanh toán thành công
Gồm: - TransactionID (long): mã giao dịch khi thanh toán thành công

4. Proguard

Nếu dùng Proguard, thêm dòng code sau vào file proguard của bạn:

-keepattributes Signature-keepattributes *Annotation*-keep class com.lib.vtcpay.** { *; }-dontwarn com.lib.vtcpay.**-keep class android.content.** { *; }-dontwarn android.content.**-keep class android.support.** { *; }-dontwarn android.support.**-dontwarn okio.**-dontwarn com.squareup.okhttp.**-dontwarn com.squareup.picasso.**#retrofit2-dontnote retrofit2.Platform-dontnote retrofit2.Platform$IOS$MainThreadExecutor-dontwarn retrofit2.Platform$Java8-dontwarn rx.internal.**

Liên hệ

Hà Nội (Trụ sở chính): Tầng 12, Tòa nhà VTC 23 Lạc Trung, Quận Hai Bà Trưng, Hà Nội
Đà Nẵng (chi nhánh): 158 Lê Đình Dương, Quận Hải Châu, Đà Nẵng
TP. Hồ Chí Minh (chi nhánh): 128E Nguyễn Đình Chính, Phường 8, Quận Phú Nhuận, TP. Hồ Chí Minh
Đầu mối kinh doanh: Mr.Đào Lê Minh – Email: Minhdl@vtc.vn - vtcintecom2006
Thông tin liên hệ : 1900 1530 - 04 3636 7728 - https://pay.vtc.vn

Tải Xuống ios Tải Xuống android