summaryrefslogtreecommitdiff
path: root/midtrans.dart
diff options
context:
space:
mode:
Diffstat (limited to 'midtrans.dart')
-rw-r--r--midtrans.dart31
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