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 |