From 9870b3066a964748dfc2df75c0c6390311342ae2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=EA=A6=AB=EA=A6=B6=EA=A6=8F=EA=A7=80=EA=A6=A6?= =?UTF-8?q?=EA=A6=BF=EA=A6=A7=EA=A6=AE=EA=A6=91=EA=A6=A9=EA=A6=AD=EA=A7=80?= Date: Thu, 6 Oct 2022 21:24:13 +0800 Subject: VA number --- midtrans.c | 28 ++++++++++++++++++++-------- 1 file 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; -- cgit v1.2.3