settlement QR setup
This commit is contained in:
parent
c6c5dd39e4
commit
7276f8c572
@ -14,8 +14,8 @@ android {
|
|||||||
applicationId "com.utsmm.kbz"
|
applicationId "com.utsmm.kbz"
|
||||||
minSdk 24
|
minSdk 24
|
||||||
targetSdk 33
|
targetSdk 33
|
||||||
versionCode 8
|
versionCode 9
|
||||||
versionName "1.07"
|
versionName "1.08"
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -404,7 +404,7 @@ public class AutoSettleService extends Service {
|
|||||||
|
|
||||||
// Push e-receipt data using repository directly
|
// Push e-receipt data using repository directly
|
||||||
try {
|
try {
|
||||||
EReceiptRequest request = EReceiptUtil.getInstance().generateQRSettlement(payDetail);
|
EReceiptRequest request = EReceiptUtil.getInstance().generateQRSettlement(payDetail, qrTransactionsList);
|
||||||
sendEReceipt(request);
|
sendEReceipt(request);
|
||||||
LogUtil.d(TAG, "QR Settlement e-receipt data prepared and sent");
|
LogUtil.d(TAG, "QR Settlement e-receipt data prepared and sent");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
@ -331,7 +331,7 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
|||||||
}
|
}
|
||||||
private void updateData() {
|
private void updateData() {
|
||||||
// EReceiptRequest request = EReceiptUtil.getInstance().generateMPUReceipt(sharedViewModel.payDetail.getValue());
|
// EReceiptRequest request = EReceiptUtil.getInstance().generateMPUReceipt(sharedViewModel.payDetail.getValue());
|
||||||
EReceiptRequest request = EReceiptUtil.getInstance().generateQRSettlement(sharedViewModel.payDetail.getValue());
|
EReceiptRequest request = EReceiptUtil.getInstance().generateQRSettlement(sharedViewModel.payDetail.getValue(), qrTransactionsList);
|
||||||
sharedViewModel.pushReceipt(request);
|
sharedViewModel.pushReceipt(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import com.utsmm.kbz.BuildConfig;
|
|||||||
import com.utsmm.kbz.util.enums.TransResultStatus;
|
import com.utsmm.kbz.util.enums.TransResultStatus;
|
||||||
import com.utsmm.kbz.util.tms.TMSUtil;
|
import com.utsmm.kbz.util.tms.TMSUtil;
|
||||||
import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptRequest;
|
import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptRequest;
|
||||||
|
import com.utsmyanmar.baselib.network.model.e_receipt.Transaction;
|
||||||
import com.utsmyanmar.paylibs.model.PayDetail;
|
import com.utsmyanmar.paylibs.model.PayDetail;
|
||||||
import com.utsmyanmar.paylibs.model.SettleData;
|
import com.utsmyanmar.paylibs.model.SettleData;
|
||||||
import com.utsmyanmar.paylibs.system.BaseErrorCode;
|
import com.utsmyanmar.paylibs.system.BaseErrorCode;
|
||||||
@ -12,6 +13,8 @@ import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation;
|
|||||||
import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType;
|
import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType;
|
||||||
|
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class EReceiptUtil {
|
public class EReceiptUtil {
|
||||||
|
|
||||||
@ -225,7 +228,7 @@ public class EReceiptUtil {
|
|||||||
return request;
|
return request;
|
||||||
}
|
}
|
||||||
|
|
||||||
public EReceiptRequest generateQRSettlement(PayDetail payDetail) {
|
public EReceiptRequest generateQRSettlement(PayDetail payDetail, List<PayDetail> transactions) {
|
||||||
|
|
||||||
double realAmount = payDetail.getAmount() / 100.0;
|
double realAmount = payDetail.getAmount() / 100.0;
|
||||||
DecimalFormat df = new DecimalFormat("0.00");
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
@ -237,13 +240,15 @@ public class EReceiptUtil {
|
|||||||
String terminalId = SystemParamsOperation.getInstance().getTerminalIdForEreceipt();
|
String terminalId = SystemParamsOperation.getInstance().getTerminalIdForEreceipt();
|
||||||
|
|
||||||
EReceiptRequest request = new EReceiptRequest();
|
EReceiptRequest request = new EReceiptRequest();
|
||||||
request.setDE3(convertTransactionType(payDetail.getTransactionType()));
|
// request.setDE3(convertTransactionType(payDetail.getTransactionType()));
|
||||||
|
request.setDE3("QRST");
|
||||||
request.setDE7(currentTimeStamp);
|
request.setDE7(currentTimeStamp);
|
||||||
request.setDE11(payDetail.getVoucherNo());
|
request.setDE11(payDetail.getVoucherNo());
|
||||||
String hostId = SystemParamsOperation.getInstance().getSecHostId();
|
String hostId = SystemParamsOperation.getInstance().getSecHostId();
|
||||||
request.setHostId(hostId);
|
request.setHostId(hostId);
|
||||||
request.setTerminalId(terminalId);//terminalId is not tid
|
request.setTerminalId(terminalId);//terminalId is not tid
|
||||||
request.setShortCode(qrMerchantId);
|
request.setShortCode(qrMerchantId);
|
||||||
|
request.setTransactions(buildTransactions(transactions));
|
||||||
|
|
||||||
SettleData settleData = payDetail.getSettleDataObj();
|
SettleData settleData = payDetail.getSettleDataObj();
|
||||||
|
|
||||||
@ -251,8 +256,6 @@ public class EReceiptUtil {
|
|||||||
double realTotalAmount = totalAmt / 100.0;
|
double realTotalAmount = totalAmt / 100.0;
|
||||||
String totalAmount = df.format(realTotalAmount);
|
String totalAmount = df.format(realTotalAmount);
|
||||||
request.setDE4(totalAmount);
|
request.setDE4(totalAmount);
|
||||||
|
|
||||||
|
|
||||||
request.setDE63_01(settleData.getSaleCount() + "");
|
request.setDE63_01(settleData.getSaleCount() + "");
|
||||||
request.setDE63_02(settleData.getSaleAmount() + "");
|
request.setDE63_02(settleData.getSaleAmount() + "");
|
||||||
request.setDE63_03(settleData.getRefundCount() + "");
|
request.setDE63_03(settleData.getRefundCount() + "");
|
||||||
@ -275,6 +278,32 @@ public class EReceiptUtil {
|
|||||||
return request;
|
return request;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static List<Transaction> buildTransactions(List<PayDetail> payDetails) {
|
||||||
|
List<Transaction> list = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
|
for (PayDetail pay : payDetails) {
|
||||||
|
|
||||||
|
double realAmount = pay.getAmount() / 100.0;
|
||||||
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
|
String amount = df.format(realAmount);
|
||||||
|
|
||||||
|
Transaction txn = new Transaction();
|
||||||
|
txn.setTran_id(pay.getVoucherNo()); // or ref no
|
||||||
|
txn.setStatus(
|
||||||
|
pay.getTransactionType() == TransactionsType.MMQR_REFUND.value
|
||||||
|
? "REFUND_SUCCESS"
|
||||||
|
: "PAY_SUCCESS"
|
||||||
|
);
|
||||||
|
txn.setDate(pay.getTransDate()); // yyyyMMdd
|
||||||
|
txn.setTime(pay.getTransTime()); // HHmmss
|
||||||
|
txn.setAmount(amount);
|
||||||
|
|
||||||
|
list.add(txn);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
public String convertTransactionType(int transactionType) {
|
public String convertTransactionType(int transactionType) {
|
||||||
if (transactionType == TransactionsType.SALE.value) {
|
if (transactionType == TransactionsType.SALE.value) {
|
||||||
return "S";
|
return "S";
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
package com.utsmyanmar.baselib.network.model.e_receipt;
|
package com.utsmyanmar.baselib.network.model.e_receipt;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class EReceiptRequest {
|
public class EReceiptRequest {
|
||||||
private String DE2;
|
private String DE2;
|
||||||
private String DE3;
|
private String DE3;
|
||||||
@ -41,8 +43,18 @@ public class EReceiptRequest {
|
|||||||
private String hostId;
|
private String hostId;
|
||||||
private String paymentIdentifier;
|
private String paymentIdentifier;
|
||||||
|
|
||||||
|
private List<Transaction> transactions;
|
||||||
|
|
||||||
public EReceiptRequest() {}
|
public EReceiptRequest() {}
|
||||||
|
|
||||||
|
public List<Transaction> getTransactions(){
|
||||||
|
return transactions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTransactions(List<Transaction> transactions){
|
||||||
|
this.transactions = transactions;
|
||||||
|
}
|
||||||
|
|
||||||
// GETTERS
|
// GETTERS
|
||||||
|
|
||||||
public String getPaymentIdentifier(){
|
public String getPaymentIdentifier(){
|
||||||
@ -258,3 +270,5 @@ public class EReceiptRequest {
|
|||||||
}
|
}
|
||||||
public void setMmqrRef(String mmqrRef){ this.mmqrRef = mmqrRef; }
|
public void setMmqrRef(String mmqrRef){ this.mmqrRef = mmqrRef; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,52 @@
|
|||||||
|
package com.utsmyanmar.baselib.network.model.e_receipt;
|
||||||
|
|
||||||
|
public class Transaction {
|
||||||
|
|
||||||
|
private String tran_id;
|
||||||
|
private String status;
|
||||||
|
private String date;
|
||||||
|
private String time;
|
||||||
|
private String amount;
|
||||||
|
|
||||||
|
public Transaction() {}
|
||||||
|
|
||||||
|
public String getTran_id() {
|
||||||
|
return tran_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTran_id(String tran_id) {
|
||||||
|
this.tran_id = tran_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStatus() {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatus(String status) {
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDate() {
|
||||||
|
return date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDate(String date) {
|
||||||
|
this.date = date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTime() {
|
||||||
|
return time;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTime(String time) {
|
||||||
|
this.time = time;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAmount() {
|
||||||
|
return amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAmount(String amount) {
|
||||||
|
this.amount = amount;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user