From a5ec411d34e824a37a09a2e524c1e17dbc4c1836 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=EA=A6=AB=EA=A6=B6=EA=A6=8F=EA=A7=80=EA=A6=A6?= =?UTF-8?q?=EA=A6=BF=EA=A6=A7=EA=A6=AE=EA=A6=91=EA=A6=A9=EA=A6=AD=EA=A7=80?= Date: Wed, 9 Nov 2022 14:14:11 +0800 Subject: E-Channel charging (for Mandiri) --- midtrans.dart | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'midtrans.dart') diff --git a/midtrans.dart b/midtrans.dart index 4c220d4..9b388d9 100644 --- a/midtrans.dart +++ b/midtrans.dart @@ -16,10 +16,19 @@ class MidtransBanktransfer extends Struct { Pointer permata; } +class MidtransEchannel extends Struct { + Pointer bill_info1; + Pointer bill_info2; +} + typedef MidtransStatus = Pointer Function(Pointer); typedef MidtransBanktransferNew = MidtransBanktransfer Function(Pointer); +typedef MidtransEchannelNew = MidtransEchannel Function(Pointer, + Pointer); typedef MidtransChargeBanktransfer = Pointer Function(MidtransBanktransfer, MidtransTransaction); +typedef MidtransChargeEchannel = Pointer Function(MidtransEchannel, + MidtransTransaction); class Midtrans { final dylib = Platform.isAndroid ? DynamicLibrary.open('libmidtrans.so') @@ -56,6 +65,28 @@ class Midtrans { return vaNumber; } + String chargeEchannel(String billInfo1, String billInfo2, + String orderID, int grossAmount) { + final bill_info1 = billInfo1.toNativeUtf8(); + final bill_info2 = billInfo2.toNativeUtf8(); + final order_id = orderID.toNativeUtf8(); + final billKey = dylib.lookupFunction + + ('midtrans_charge_echannel') + (dylib.lookupFunction + + ('midtrans_echannel_new')(bill_info1, bill_info2), + dylib.lookupFunction + , Long), + MidtransTransaction Function (Pointer, int)> + ('midtrans_transaction_new')(order_id, grossAmount)) + .toDartString(); + calloc.free(bill_info1); + calloc.free(bill_info2); + calloc.free(order_id); + return billKey; + } + String status(String orderID) { final order_id = orderID.toNativeUtf8(); final status = dylib.lookupFunction -- cgit v1.2.3