Nhảy tới nội dung

Tích hợp Android

Yêu cầu Android SDK >= 16

Bước 1 Import SDK và thêm Jitpack vào file build.gradle

allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}

Thêm dependency

implementation 'com.github.VNPTSmartCA:android-sdk:1.0.3'

Bước 2 Cấu hình file AndroidManifest

<uses-permission android:name="android.permission.INTERNET"/>

Bước 3 Khởi tạo môi trường

import com.vnpt.egov.vnptsmartcaandroidsdk.ParameterNameTransaction;
import com.vnpt.egov.vnptsmartcaandroidsdk.Transaction;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mapping);
/*
* You need choose environment to develop.
* Have 2 choices:
* Transaction.ENVIRONMENT.DEVELOPMENT will connect to dev/test server
* Transaction.*ENVIRONMENT.PRODUCTION will connect to production server
* */
Transaction.getInstance().setEnvironment(Transaction.ENVIRONMENT.PRODUCTION);
}

Bước 4 Mở ứng dụng VNPTSmartCA với các tham số bắt buộc

//ID của giao dịch chờ ký số
private final String tranId = "transaction ID";
//ID của đơn vị tích hợp, được gửi kèm email khi đăng ký tích hợp với VNPT.
private final String clientId = "partner ID";

private void requestMapping() {
Map<String, String> eventValue = new HashMap<>();
//Client Required
eventValue.put(ParameterNameTransaction.CLIENT_ID, clientId);
eventValue.put(ParameterNameTransaction.TRAN_ID, tranId);
Transaction.getInstance().requestVNPTSmartCACallback(this, eventValue);
}

Bước 5 Nhận dữ liệu trả về từ ứng dụng VNPTSmartCA

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == Transaction.getInstance().REQUEST_CODE_VNPT_SMARTCA && resultCode == 0) {
tvStatusCode.setText("StatusCode:"+data.getExtras().getInt("status"));
tvMessage.setText("Message: " + data.getExtras().getString("message"));
} else {
tvMessage.setText("message: " + this.getString(R.string.not_receive_info_err));
}
}