summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id>2022-10-06 21:24:13 +0800
committerꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id>2022-10-06 21:24:13 +0800
commit9870b3066a964748dfc2df75c0c6390311342ae2 (patch)
tree7e158f5e85e903dc65ac644b40153d56832e8952
parent7468dae2ce7a49972e7f97a996f06c7764877723 (diff)
VA number
-rw-r--r--midtrans.c28
1 files changed, 20 insertions, 8 deletions
diff --git a/midtrans.c b/midtrans.c
index 912a66f..e2db258 100644
--- a/midtrans.c
+++ b/midtrans.c
@@ -120,15 +120,27 @@ void midtrans_charge(enum midtrans_payment type, void *object,
case MIDTRANS_BANKTRANSFER:
default:
;
- char *payment_tmpl = "bank_transfer\","
- "\t\"bank_transfer\": {"
- "\t\t\"bank\": \"%s\"";
- struct midtrans_banktransfer *banktransfer
- = object;
- payment_len = strlen(payment_tmpl) - strlen("%s")
- + strlen(banktransfer->bank);
+ struct midtrans_banktransfer *banktransfer = object;
+ static const char *va_number_tmpl = ",\n"
+ "\t\t\"va_number\": \"%s\"";
+ size_t va_number_len = 0;
+ char *va_number = NULL;
+ if (banktransfer->va_number) {
+ va_number = malloc(strlen(va_number_tmpl)
+ - strlen("%s") +
+ strlen(banktransfer->va_number)
+ + 1);
+ sprintf(va_number, va_number_tmpl,
+ banktransfer->va_number);
+ }
+ static const char *payment_tmpl = "bank_transfer\",\n"
+ "\t\"bank_transfer\": {\n"
+ "\t\t\"bank\": \"%s\"%s";
+ payment_len = strlen(payment_tmpl) - strlen("%s") * 2
+ + va_number_len + strlen(banktransfer->bank);
payment = malloc(payment_len + 1);
- sprintf(payment, payment_tmpl, banktransfer->bank);
+ sprintf(payment, payment_tmpl, banktransfer->bank,
+ va_number_len ? va_number : "");
break;
}
size_t i = 0;