diff options
| author | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2022-11-09 14:14:11 +0800 |
|---|---|---|
| committer | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2022-11-09 14:14:11 +0800 |
| commit | a5ec411d34e824a37a09a2e524c1e17dbc4c1836 (patch) | |
| tree | 4683db3a4c6b9c8a0aac5ce06ac8652117355875 /midtrans.dart | |
| parent | a476c2bf2746469808b013b53e9e304935fa8346 (diff) | |
E-Channel charging (for Mandiri)
Diffstat (limited to 'midtrans.dart')
| -rw-r--r-- | midtrans.dart | 31 |
1 files changed, 31 insertions, 0 deletions
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<Utf8> permata; } +class MidtransEchannel extends Struct { + Pointer<Utf8> bill_info1; + Pointer<Utf8> bill_info2; +} + typedef MidtransStatus = Pointer<Utf8> Function(Pointer<Utf8>); typedef MidtransBanktransferNew = MidtransBanktransfer Function(Pointer<Utf8>); +typedef MidtransEchannelNew = MidtransEchannel Function(Pointer<Utf8>, + Pointer<Utf8>); typedef MidtransChargeBanktransfer = Pointer<Utf8> Function(MidtransBanktransfer, MidtransTransaction); +typedef MidtransChargeEchannel = Pointer<Utf8> 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 + <MidtransChargeEchannel, MidtransChargeEchannel> + ('midtrans_charge_echannel') + (dylib.lookupFunction + <MidtransEchannelNew, MidtransEchannelNew> + ('midtrans_echannel_new')(bill_info1, bill_info2), + dylib.lookupFunction + <MidtransTransaction Function (Pointer<Utf8>, Long), + MidtransTransaction Function (Pointer<Utf8>, 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 |