diff options
author | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2022-11-03 17:59:20 +0800 |
---|---|---|
committer | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2022-11-03 17:59:20 +0800 |
commit | 1745915fc00f3b2bf0720087afbb97415ab2ad92 (patch) | |
tree | caa75eac210fb989587f7ccc6b294b3dd7308e6f | |
parent | 3b958007419bf3f1164aa0ab6fd68d84b5830133 (diff) |
Reorder status function/method
-rw-r--r-- | midtrans.c | 56 | ||||
-rw-r--r-- | midtrans.dart | 18 | ||||
-rw-r--r-- | midtrans.h | 2 |
3 files changed, 38 insertions, 38 deletions
@@ -81,34 +81,6 @@ void midtrans_init(const char *api_key, char *pem) })); } -char *midtrans_status(const char *order_id) -{ - static const char *tmpl = "%s%s/status"; - char url[strlen(tmpl) - strlen("%s") * 2 + strlen(base_url) - + strlen(order_id) + 1]; - sprintf(url, tmpl, base_url, order_id); - curl_easy_setopt(curl, CURLOPT_URL, url); - - struct response res = { 0, NULL }; - curl_easy_setopt(curl, CURLOPT_WRITEDATA, &res); - curl_easy_perform(curl); - - json_tokener *tokener = json_tokener_new(); - json_object *object = json_tokener_parse_ex(tokener, res.data, - res.size); - free(res.data); - - json_object *transaction_status = NULL; - json_object_object_get_ex(object, "transaction_status", - &transaction_status); - const char *string = json_object_get_string(transaction_status); - char *status = malloc(strlen(string) + 1); - strcpy(status, string); - json_tokener_free(tokener); - - return status; -} - struct midtrans_banktransfer midtrans_banktransfer_new(char *bank) { return (struct midtrans_banktransfer){ bank, NULL, NULL, NULL }; @@ -213,6 +185,34 @@ char *midtrans_charge_banktransfer(struct midtrans_banktransfer banktransfer, return virtualaccount_number; } +char *midtrans_status(const char *order_id) +{ + static const char *tmpl = "%s%s/status"; + char url[strlen(tmpl) - strlen("%s") * 2 + strlen(base_url) + + strlen(order_id) + 1]; + sprintf(url, tmpl, base_url, order_id); + curl_easy_setopt(curl, CURLOPT_URL, url); + + struct response res = { 0, NULL }; + curl_easy_setopt(curl, CURLOPT_WRITEDATA, &res); + curl_easy_perform(curl); + + json_tokener *tokener = json_tokener_new(); + json_object *object = json_tokener_parse_ex(tokener, res.data, + res.size); + free(res.data); + + json_object *transaction_status = NULL; + json_object_object_get_ex(object, "transaction_status", + &transaction_status); + const char *string = json_object_get_string(transaction_status); + char *status = malloc(strlen(string) + 1); + strcpy(status, string); + json_tokener_free(tokener); + + return status; +} + void midtrans_cleanup() { free(base_url); diff --git a/midtrans.dart b/midtrans.dart index 8779153..b61b591 100644 --- a/midtrans.dart +++ b/midtrans.dart @@ -36,15 +36,6 @@ class Midtrans { calloc.free(pemUtf8); } - String status(String orderID) { - final order_id = orderID.toNativeUtf8(); - final status = dylib.lookupFunction - <MidtransStatus, MidtransStatus> - ('midtrans_status')(order_id).toDartString(); - calloc.free(order_id); - return status; - } - String chargeBanktransfer(String bank, String orderID, int grossAmount) { final bankUtf8 = bank.toNativeUtf8(); @@ -65,6 +56,15 @@ class Midtrans { return vaNumber; } + String status(String orderID) { + final order_id = orderID.toNativeUtf8(); + final status = dylib.lookupFunction + <MidtransStatus, MidtransStatus> + ('midtrans_status')(order_id).toDartString(); + calloc.free(order_id); + return status; + } + void cleanup() { dylib.lookupFunction<Void Function(), void Function()> ('midtrans_cleanup')(); @@ -23,13 +23,13 @@ extern "C" { #endif void midtrans_init(const char *api_key, char *pem); -char *midtrans_status(const char *order_id); struct midtrans_banktransfer midtrans_banktransfer_new(char *bank); struct midtrans_transaction midtrans_transaction_new(char *order_id, long gross_amount); char *midtrans_charge_banktransfer(struct midtrans_banktransfer banktransfer, struct midtrans_transaction transaction /*, char *custom_fields[]*/); +char *midtrans_status(const char *order_id); void midtrans_cleanup(); #ifdef __cplusplus |