Tích hợp Android
Yêu cầu
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);
/*
* Lựa chọn môi trường tích hợp
* DEVELOPMENT hoặc PRODUCTION
* */
Transaction.getInstance().setEnvironment(Transaction.ENVIRONMENT.PRODUCTION);
}
Bước 4: Mở ứng dụng VNPTSmartCA với các tham số bắt buộc
private final String tranId = "transaction ID"; //Id của giao dịch chờ ký số
private final String clientId = "partner ID"; //là Mobile Code/clientId trên môi trường tương ứng được gửi kèm trong email khi đăng ký tích hợp
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);
}
Lưu ý
tranId là mã giao dịch do hệ thống VNPT SmartCA sinh ra và trả về cho đối tác. Ví dụ trandId: "48b7d184-bbf4-4fa2-a661-3a223dcb716a"
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 && data != null) {
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));
}
}