qr e-receipt push fix
This commit is contained in:
parent
6b1c6ef4b5
commit
4d5124fc64
@ -431,58 +431,4 @@ public class QRTransactionFragment extends DataBindingFragment implements DataBi
|
||||
});
|
||||
}
|
||||
|
||||
private String mapCurrency(String currency) {
|
||||
if (currency == null) return "MMK";
|
||||
|
||||
switch (currency) {
|
||||
case "104": return "MMK";
|
||||
case "840": return "USD";
|
||||
case "764": return "THB";
|
||||
case "702": return "SGD";
|
||||
case "978": return "EUR";
|
||||
default: return currency; // Already alphabetic? return as-is
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// private EReceiptQRRequest buildEReceiptQRReceipt(PayDetail payDetail, boolean isSuccess, String reason) {
|
||||
//
|
||||
// // Timestamp (MMddHHmmss)
|
||||
// String currentTimestamp = new java.text.SimpleDateFormat(
|
||||
// "MMddHHmmss", java.util.Locale.getDefault()
|
||||
// ).format(new java.util.Date());
|
||||
//
|
||||
// // Device Info
|
||||
// String serial = TMSUtil.getInstance().getSerialNumber();
|
||||
// String appId = requireActivity().getPackageName();
|
||||
//
|
||||
// // Terminal Info
|
||||
//// String terminalId = SystemParamsOperation.getInstance().getTerminalId();
|
||||
//// String merchantId = SystemParamsOperation.getInstance().getMerchantId();
|
||||
//
|
||||
//
|
||||
// // Amount convert (long cents → double → 0.00)
|
||||
// double realAmount = payDetail.getAmount() / 100.0;
|
||||
// DecimalFormat df = new DecimalFormat("0.00");
|
||||
// String amount = df.format(realAmount);
|
||||
//
|
||||
// EReceiptQRRequest request = new EReceiptQRRequest();
|
||||
// request.setDE3("QR"); // QR Process Code
|
||||
// request.setDE4(amount); // Amount
|
||||
// request.setDE7(currentTimestamp); // Timestamp
|
||||
// request.setDE37(payDetail.getReferNo()); // Reference No
|
||||
// request.setDE39(isSuccess ? "A" : "E"); // A=Approved, D=Declined/Timeout
|
||||
// request.setDE41(terminalId);
|
||||
// request.setDE42(merchantId);
|
||||
// request.setDE49(mapCurrency(payDetail.getCurrencyCode())); // Currency
|
||||
// request.setSerial(serial);
|
||||
// request.setInvoiceNumber(payDetail.getInvoiceNo());
|
||||
// request.setDE11(payDetail.getVoucherNo()); // STAN
|
||||
// request.setAppId(appId);
|
||||
// request.setDescription(reason); // Anything: success / timeout / error message
|
||||
//
|
||||
// return request;
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -12,12 +12,15 @@ import com.utsmm.kbz.config.Constants;
|
||||
import com.utsmm.kbz.ui.core_viewmodel.SharedViewModel;
|
||||
import com.utsmm.kbz.ui.kpay.KPayViewModel;
|
||||
import com.utsmm.kbz.ui.kpay.QRRefundFragment;
|
||||
import com.utsmm.kbz.util.EReceiptUtil;
|
||||
import com.utsmm.kbz.util.TransactionUtil;
|
||||
import com.utsmm.kbz.util.ecr.CoreUtils;
|
||||
import com.utsmm.kbz.util.enums.TransResultStatus;
|
||||
import com.utsmm.kbz.util.tms.TMSUtil;
|
||||
import com.utsmyanmar.baselib.fragment.DataBindingFragment;
|
||||
import com.utsmyanmar.baselib.network.model.KPayRefund;
|
||||
//import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptQRRequest;
|
||||
import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptRequest;
|
||||
import com.utsmyanmar.baselib.util.DataBindingConfig;
|
||||
import com.utsmyanmar.paylibs.model.PayDetail;
|
||||
import com.utsmyanmar.paylibs.system.SystemDateTime;
|
||||
@ -144,7 +147,8 @@ public class QRRefundProcessFragment extends DataBindingFragment {
|
||||
payDetail.setReferNo(referenceNo);
|
||||
payDetail.setIsCanceled(true);
|
||||
|
||||
// sharedViewModel.pushReceipt(buildEReceiptQRReceipt(payDetail, true, "Refund success"));
|
||||
EReceiptRequest request = EReceiptUtil.getInstance().generateQRRefundReceipt(sharedViewModel.payDetail.getValue(), TransResultStatus.SUCCESS);
|
||||
sharedViewModel.pushReceipt(request);
|
||||
|
||||
retrievedUpdatePayDetail(referenceNo);
|
||||
|
||||
@ -159,8 +163,9 @@ public class QRRefundProcessFragment extends DataBindingFragment {
|
||||
errorMsg = response.getResponse().getMsg();
|
||||
}
|
||||
payDetail.setTradeResultDes(errorMsg);
|
||||
// sharedViewModel.pushReceipt(buildEReceiptQRReceipt(payDetail, false, "Refund Failed! "+errorMsg));
|
||||
|
||||
EReceiptRequest request = EReceiptUtil.getInstance().generateQRRefundReceipt(sharedViewModel.payDetail.getValue(), TransResultStatus.FAIL);
|
||||
sharedViewModel.pushReceipt(request);
|
||||
|
||||
sharedViewModel.payDetail.setValue(payDetail);
|
||||
navigateToNext();
|
||||
}
|
||||
@ -220,57 +225,4 @@ public class QRRefundProcessFragment extends DataBindingFragment {
|
||||
}
|
||||
}
|
||||
|
||||
private String mapCurrency(String currency) {
|
||||
if (currency == null) return "MMK";
|
||||
|
||||
switch (currency) {
|
||||
case "104": return "MMK";
|
||||
case "840": return "USD";
|
||||
case "764": return "THB";
|
||||
case "702": return "SGD";
|
||||
case "978": return "EUR";
|
||||
default: return currency; // Already alphabetic? return as-is
|
||||
}
|
||||
}
|
||||
|
||||
// private EReceiptQRRequest buildEReceiptQRReceipt(PayDetail payDetail, boolean isSuccess, String reason) {
|
||||
//
|
||||
// // Timestamp (MMddHHmmss)
|
||||
// String currentTimestamp = new java.text.SimpleDateFormat(
|
||||
// "MMddHHmmss", java.util.Locale.getDefault()
|
||||
// ).format(new java.util.Date());
|
||||
//
|
||||
// // Device Info
|
||||
// String serial = TMSUtil.getInstance().getSerialNumber();
|
||||
// String appId = requireActivity().getPackageName();
|
||||
//
|
||||
//
|
||||
// // Terminal Info
|
||||
//// String terminalId = SystemParamsOperation.getInstance().getTerminalId();
|
||||
//// String merchantId = SystemParamsOperation.getInstance().getMerchantId();
|
||||
// String terminalId = TransactionUtil.getInstance().getQRTerminalId();
|
||||
// String merchantId = TransactionUtil.getInstance().getQRMerchantId();
|
||||
//
|
||||
// // Amount convert (long cents → double → 0.00)
|
||||
// double realAmount = payDetail.getAmount() / 100.0;
|
||||
// DecimalFormat df = new DecimalFormat("0.00");
|
||||
// String amount = df.format(realAmount);
|
||||
//
|
||||
// EReceiptQRRequest request = new EReceiptQRRequest();
|
||||
// request.setDE3("QRV"); // QR Process Code(fix later with get from config)
|
||||
// request.setDE4(amount); // Amount
|
||||
// request.setDE7(currentTimestamp); // Timestamp
|
||||
// request.setDE37(payDetail.getReferNo()); // Reference No
|
||||
// request.setDE39(isSuccess ? "A" : "E"); // A=Approved, E=Error/Declined/Timeout
|
||||
// request.setDE41(terminalId);
|
||||
// request.setDE42(merchantId);
|
||||
// request.setDE49(mapCurrency(payDetail.getCurrencyCode())); // Currency(fix later with get from config)
|
||||
// request.setSerial(serial);
|
||||
// request.setInvoiceNumber(payDetail.getInvoiceNo());
|
||||
// request.setDE11(payDetail.getVoucherNo()); // STAN
|
||||
// request.setAppId(appId);
|
||||
// request.setDescription(reason); // Anything: success / timeout / error message
|
||||
//
|
||||
// return request;
|
||||
// }
|
||||
}
|
||||
|
||||
@ -85,6 +85,50 @@ public class EReceiptUtil {
|
||||
|
||||
|
||||
|
||||
return request;
|
||||
}
|
||||
|
||||
public EReceiptRequest generateQRRefundReceipt(PayDetail payDetail, TransResultStatus status) {
|
||||
|
||||
double realAmount = payDetail.getAmount() / 100.0;
|
||||
DecimalFormat df = new DecimalFormat("0.00");
|
||||
String amount = df.format(realAmount);
|
||||
|
||||
String currentTimeStamp = new java.text.SimpleDateFormat("MMddHHmmss", java.util.Locale.getDefault())
|
||||
.format(new java.util.Date());
|
||||
EReceiptRequest request = new EReceiptRequest();
|
||||
request.setDE3("QRV");
|
||||
|
||||
request.setDE7(currentTimeStamp);
|
||||
request.setDE37(payDetail.getReferNo());
|
||||
|
||||
request.setDE49("MMK");
|
||||
request.setSerial(serialNum);
|
||||
request.setAppId(packageName);
|
||||
request.setDE41(terminalId);
|
||||
request.setDE42(merchantId);
|
||||
request.setInvoiceNumber(payDetail.getInvoiceNo());
|
||||
request.setDE11(payDetail.getVoucherNo());
|
||||
|
||||
// need to add payment identifier field too
|
||||
|
||||
if(status == TransResultStatus.SUCCESS) {
|
||||
request.setDE4(amount);
|
||||
request.setDescription("qr refund success");
|
||||
request.setDE39("A");
|
||||
} else if(status == TransResultStatus.TIME_OUT) {
|
||||
request.setDE4("0");
|
||||
request.setDescription("qr refund timeout");
|
||||
request.setDE39("D");
|
||||
} else if(status == TransResultStatus.FAIL) {
|
||||
request.setDE4("0");
|
||||
request.setDescription("qr refund failed");
|
||||
request.setDE39("E");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return request;
|
||||
}
|
||||
|
||||
|
||||
@ -107,7 +107,8 @@ public class Repository {
|
||||
return siriusApiService.getParams(siriusRequest);
|
||||
}
|
||||
public Observable<EReceiptResponse> sendReceipt(Object body){
|
||||
String apiSecret = BuildConfig.ERECEIPT_SECRET;
|
||||
// String apiSecret = BuildConfig.ERECEIPT_SECRET;
|
||||
String apiSecret = "8f4df38d1001bcc4620b5c736c66a03eef4653eb3ba31105faa2f2ee294c4a46";
|
||||
String timestamp = String.valueOf(System.currentTimeMillis());
|
||||
String bodyString = new Gson().toJson(body);
|
||||
String dataToHash = bodyString + apiSecret + timestamp;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user