From 2e95be6dfe03dc47aad92c76b11cbfa90a74e0b6 Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Sun, 26 Nov 2023 22:31:27 -0500 Subject: [PATCH] start credit --- wrenchboard/src/shared_tool/payments.cc | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/wrenchboard/src/shared_tool/payments.cc b/wrenchboard/src/shared_tool/payments.cc index e088dbbc..b1d2e0b6 100644 --- a/wrenchboard/src/shared_tool/payments.cc +++ b/wrenchboard/src/shared_tool/payments.cc @@ -463,6 +463,8 @@ long WrenchStartPayment( CVars in, CVars &out ){ long amount = REQ_LONG( in, "amount", 1, -1 ); REQ_STRING (in, "currency", 2, 10, "(.*)"); REQ_STRING(in, "uid", 3, 150, "(.*)"); + OPTIONAL(in, "card_uid") REQ_STRING(in, "card_uid", 3, 150, "(.*)"); + const PGresult *res = pgsql_query("SELECT uid,id AS member_id FROM members WHERE id=%lu AND uid='%s'", member_id, in["uid"].c_str()); if (res != NULL && pgsql_num_rows(res) > 0) { mapf = pgsql_fetch_assoc(res, 0); @@ -484,15 +486,22 @@ long WrenchStartPayment( CVars in, CVars &out ){ xx["amount"].set_valid(true); xx["currency"] = in["currency"]; xx["currency"].set_valid(true); + + xx["card_uid"] = in["card_uid"]; + xx["card_uid"].set_valid(true); + out["credit_ref_no"] = "0"; out["credit_ref_no"] = insert_db_record(DBS_VALID, "members_credit", "members_credit_id_seq", xx); if ( out["credit_ref_no"].Long() > 0) { - load_db_record( out, "SELECT uid AS credit_reference, fee, currency " - " FROM members_credit WHERE member_id = %lu AND id=%lu ", member_id, out["credit_ref_no"].Long()); - out["status"] = "OK"; - out["flutterwave_key"] = CfgReadChar("flutterwave.public_key"); - ret = PHP_API_OK; + if( load_db_record( out, "SELECT uid AS credit_reference, fee, currency " + " FROM members_credit WHERE member_id = %lu AND id=%lu ", member_id, out["credit_ref_no"].Long())> 0){ + out["total"].Long() = out["amount"].Long() + out["fee"].Long(); + out["status"] = "OK"; + out["flutterwave_key"] = CfgReadChar("flutterwave.public_key"); + ret = PHP_API_OK; + } + } } catch (bad_parameter) {