summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id>2022-10-27 15:00:42 +0800
committerꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id>2022-10-27 15:00:42 +0800
commit8adc9d0c1dc5744288ed2f52ff9db47a1e0bea1a (patch)
treef8603629199a3121c86b4116aea2380eb94d4a99
parent06ac2fc5d785c4ed57b228000cebfaefee12c6c9 (diff)
Use CURLOPT_CAINFO_BLOB instead
Easier on platforms like Android, especially on other languages/frameworks.
-rw-r--r--midtrans.c11
-rw-r--r--midtrans.dart8
-rw-r--r--midtrans.h2
3 files changed, 13 insertions, 8 deletions
diff --git a/midtrans.c b/midtrans.c
index a9eb3d7..958bf95 100644
--- a/midtrans.c
+++ b/midtrans.c
@@ -32,7 +32,7 @@ static size_t append(char *data, size_t size, size_t nmemb,
return realsize;
}
-void midtrans_init(const char *api_key, const char *cainfo)
+void midtrans_init(const char *api_key, const char *pem)
{
static const char *prefix = "SB-";
if (strncmp(api_key, prefix, strlen(prefix)))
@@ -77,8 +77,13 @@ void midtrans_init(const char *api_key, const char *cainfo)
slist = curl_slist_append(slist, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, slist);
- if (cainfo)
- curl_easy_setopt(curl, CURLOPT_CAINFO, cainfo);
+ if (pem)
+ curl_easy_setopt(curl, CURLOPT_CAINFO_BLOB,
+ &(struct curl_blob){
+ .data = pem,
+ .len = strlen(pem),
+ .flags = CURL_BLOB_COPY
+ });
}
static void *request(void *arg)
diff --git a/midtrans.dart b/midtrans.dart
index a5e622f..35ee23b 100644
--- a/midtrans.dart
+++ b/midtrans.dart
@@ -21,20 +21,20 @@ class MidtransBanktransfer extends Struct {
class Midtrans {
DynamicLibrary dylib;
- Midtrans(String apiKey, String caInfo) {
+ Midtrans(String apiKey, String pem) {
dylib = Platform.isAndroid
? DynamicLibrary.open('libmidtrans.so')
: DynamicLibrary.process();
final apiKeyUtf8 = apiKey.toNativeUtf8();
- final caInfoUtf8 = caInfo.toNativeUtf8();
+ final pemUtf8 = pem.toNativeUtf8();
final midtrans_init = dylib.lookupFunction
<Void Function(Pointer<Utf8>, Pointer<Utf8>),
void Function(Pointer<Utf8>, Pointer<Utf8>)>
('midtrans_init');
- midtrans_init(apiKeyUtf8, caInfoUtf8);
+ midtrans_init(apiKeyUtf8, pemUtf8);
calloc.free(apiKeyUtf8);
- calloc.free(caInfoUtf8);
+ calloc.free(pemUtf8);
}
void chargeBanktransfer(MidtransBanktransfer payment,
diff --git a/midtrans.h b/midtrans.h
index bd03076..985640d 100644
--- a/midtrans.h
+++ b/midtrans.h
@@ -22,7 +22,7 @@ struct midtrans_banktransfer {
extern "C" {
#endif
-void midtrans_init(const char *api_key, const char *cainfo);
+void midtrans_init(const char *api_key, const char *pem);
void midtrans_status(const char *order_id);
void midtrans_charge_banktransfer(struct midtrans_banktransfer *banktransfer,
struct midtrans_transaction *transaction,