|
|
|
@@ -124,7 +124,7 @@ long WrenchBoardDeleteAccount(CVars in, CVars &out);
|
|
|
|
|
long VerifyWrenchAccountLink(CVars in, CVars &out);
|
|
|
|
|
long LoginWrenchBoardAuxAccount(CVars in, CVars &out);
|
|
|
|
|
long WrenchDeleteUsersCCard(CVars in, CVars &out);
|
|
|
|
|
long WrenchFlutterCreditHook(CVars in, CVars &out);
|
|
|
|
|
long WrenchFlutterCreditHook(CVars in, CVars &out);
|
|
|
|
|
|
|
|
|
|
long test() {
|
|
|
|
|
FILE* oldFile = Output2FILE::Stream();
|
|
|
|
@@ -408,6 +408,11 @@ long account_calls(CVars in, CVars &out) {
|
|
|
|
|
return WrenchBoardMobileSendUserWallet(in, out);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case WRENCHBOARD_ACCOUNT_TOPUP_RESULT:
|
|
|
|
|
logfmt(logINFO, "/WRENCHBOARD_ACCOUNT_TOPUP_RESULT()");
|
|
|
|
|
return WrenchBoardStartBalanceTopup(in, out);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case WRENCHBOARD_ACCOUNT_PREPARE_TOPUP:
|
|
|
|
|
logfmt(logINFO, "/WRENCHBOARD_ACCOUNT_PREPARE_TOPUP()");
|
|
|
|
|
return WrenchBoardStartBalanceTopup(in, out);
|
|
|
|
@@ -491,6 +496,30 @@ long WrenchFlutterCreditHook(CVars in, CVars &out) {
|
|
|
|
|
xx["raw_result"] = in["raw_result"]; xx["raw_result"].set_valid(true);
|
|
|
|
|
out["hook_id"] = insert_db_record(DBS_VALID, "flutterwave_hooks", "flutterwave_hooks_id_seq", xx);
|
|
|
|
|
|
|
|
|
|
if ( out["hook_id"].Long() > 0 && in["status"] == "successful"){
|
|
|
|
|
// lets find teh customer now
|
|
|
|
|
CVars cc;
|
|
|
|
|
if ( load_db_record(cc, "SELECT member_id, uid,amount,currency FROM members_credit WHERE uid = '%s'", xx["txRef"].c_str()> 0){
|
|
|
|
|
CVars xn;
|
|
|
|
|
xn["member_id"] = cc["member_id"]; xn["member_id"].set_valid(true);
|
|
|
|
|
xn["amount"] = cc["amount"]; xn["amount"].set_valid(true);
|
|
|
|
|
xn["currency"] = cc["currency"]; xn["currency"].set_valid(true);
|
|
|
|
|
xn["transaction_id"] = xx["txRef"]; xn["transaction_id"].set_valid(true);
|
|
|
|
|
long trx_id = WrenchBoardStartBalanceTopup(xn, out);
|
|
|
|
|
if ( trx_id > 0 ){
|
|
|
|
|
CVars tx;
|
|
|
|
|
tx["return_status"] = in["status"]; tx["return_status"].set_valid(true);
|
|
|
|
|
tx["status"] = "5"; tx["status"].set_valid(true);
|
|
|
|
|
tx["tx_ref"] = xx["txRef"]; tx["tx_ref"].set_valid(true);
|
|
|
|
|
tx["transaction_id"] = xx["txRef"]; tx["transaction_id"].set_valid(true);
|
|
|
|
|
long credit_id = WrenchBoardCompleteBalanceTopup(in, out);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} catch (bad_parameter) {
|
|
|
|
|
out["log_status"] = "Something went wrong";
|
|
|
|
@@ -499,6 +528,50 @@ long WrenchFlutterCreditHook(CVars in, CVars &out) {
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
long WrenchBoardStartBalanceTopup(CVars in, CVars &out){
|
|
|
|
|
logfmt(logINFO, "WrenchBoardStartBalanceTopup()");
|
|
|
|
|
long trx_id = 0;
|
|
|
|
|
/*
|
|
|
|
|
$data['tx_ref'] = 'wrench-'.rand(1000000000,9999999999);
|
|
|
|
|
$data['currency'] = "NGN";
|
|
|
|
|
$data['customer_email'] = $_SESSION['username'];
|
|
|
|
|
$data['customer_phone_number'] = '';
|
|
|
|
|
$data['customer_name'] = $_SESSION['firstname'].' '.$_SESSION['lastname'];
|
|
|
|
|
$data['consumer_id'] = $_SESSION['member_id'];
|
|
|
|
|
$data['consumer_mac'] = $_SESSION['member_id']."-912ba-1192a";
|
|
|
|
|
$data['redirect_url'] = base_url() . "dash"; //"https://oameye.work.wrenchboard.com/dash";
|
|
|
|
|
$data['public_key'] = "FLWPUBK_TEST-54c90141b028789d671067bd72f781a9-X";
|
|
|
|
|
*/
|
|
|
|
|
out["public_key"] = CfgReadChar("flutterwave.public_key");
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
REQ_LONG(in, "member_id", 1, -1);
|
|
|
|
|
REQ_LONG(in, "amount", 1, -1);
|
|
|
|
|
REQ_STRING(in, "currency", 2, 10, "(.*)");
|
|
|
|
|
REQ_STRING(in, "transaction_id", 2, 50, "(.*)");
|
|
|
|
|
|
|
|
|
|
CVars x;
|
|
|
|
|
x["member_id"] = in["member_id"];
|
|
|
|
|
x["member_id"].set_valid(true);
|
|
|
|
|
x["amount"] = in["amount"];
|
|
|
|
|
x["amount"].set_valid(true);
|
|
|
|
|
x["currency"] = in["currency"];
|
|
|
|
|
x["currency"].set_valid(true);
|
|
|
|
|
x["transaction_id"] = in["transaction_id"];
|
|
|
|
|
x["transaction_id"].set_valid(true);
|
|
|
|
|
|
|
|
|
|
trx_id = insert_db_record(DBS_VALID, "flutterwave_payments", "flutterwave_payments_id_seq", x);
|
|
|
|
|
|
|
|
|
|
if (trx_id > 0) {
|
|
|
|
|
load_db_record(out, "SELECT fp.member_id AS consumer_id,fp.tx_ref,fp.tx_ref,fp.currency,m.phone,m.uid AS consumer_mac " \
|
|
|
|
|
"FROM flutterwave_payments fp LEFT JOIN members m ON m.id=fp.member_id WHERE fp.id =%lu",trx_id);
|
|
|
|
|
}
|
|
|
|
|
out["status"] = "OK";
|
|
|
|
|
} catch (bad_parameter) {
|
|
|
|
|
logfmt(logINFO, "ERROR CALL long WrenchBoardStartBalanceTopup(CVars in, CVars &out)");
|
|
|
|
|
}
|
|
|
|
|
return trx_id;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
long WrenchDeleteUsersCCard(CVars in, CVars &out) {
|
|
|
|
|
logfmt(logINFO, "VerifyWrenchAccountLink()");
|
|
|
|
@@ -575,6 +648,32 @@ long WrenchBoardDeleteAccount(CVars in, CVars &out)
|
|
|
|
|
DO THE DELETE HERE NOW
|
|
|
|
|
*/
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
long WrenchBoardTopupResult(CVars in, CVars &out){
|
|
|
|
|
/*
|
|
|
|
|
action
|
|
|
|
|
:
|
|
|
|
|
11062
|
|
|
|
|
amount
|
|
|
|
|
:
|
|
|
|
|
555
|
|
|
|
|
currency
|
|
|
|
|
:
|
|
|
|
|
"NGN"
|
|
|
|
|
member_id
|
|
|
|
|
:
|
|
|
|
|
"1"
|
|
|
|
|
sessionid
|
|
|
|
|
:
|
|
|
|
|
"72227C1650AA2D3838C448E5393B3CAD2E694A483B1C4F52C44662FE6FC01B0C"
|
|
|
|
|
uid
|
|
|
|
|
:
|
|
|
|
|
"3119b744-42ad-4834-bb83-b737588754ca"
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
long WrenchBoardCompleteBalanceTopup(CVars in, CVars &out){
|
|
|
|
@@ -583,9 +682,9 @@ long WrenchBoardCompleteBalanceTopup(CVars in, CVars &out){
|
|
|
|
|
const PGresult *res;
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
REQ_STRING(in, "tx_ref", 2, 50, "(.*)");
|
|
|
|
|
REQ_STRING(in, "transaction_id", 2, 50, "(.*)");
|
|
|
|
|
REQ_LONG(in, "status", 1, -1);
|
|
|
|
|
REQ_STRING(in, "tx_ref", 2, 50, "(.*)");
|
|
|
|
|
REQ_STRING(in, "transaction_id", 2, 50, "(.*)");
|
|
|
|
|
REQ_LONG(in, "status", 1, -1);
|
|
|
|
|
|
|
|
|
|
res = pgsql_query("SELECT id AS trx_id,member_id FROM flutterwave_payments WHERE tx_ref = '%s' AND status=0",in["tx_ref"].c_str());
|
|
|
|
|
if (res != NULL && pgsql_num_rows(res) > 0) {
|
|
|
|
@@ -611,46 +710,8 @@ long WrenchBoardCompleteBalanceTopup(CVars in, CVars &out){
|
|
|
|
|
return trx_id;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
long WrenchBoardStartBalanceTopup(CVars in, CVars &out){
|
|
|
|
|
logfmt(logINFO, "WrenchBoardStartBalanceTopup()");
|
|
|
|
|
long trx_id = 0;
|
|
|
|
|
/*
|
|
|
|
|
$data['tx_ref'] = 'wrench-'.rand(1000000000,9999999999);
|
|
|
|
|
$data['currency'] = "NGN";
|
|
|
|
|
$data['customer_email'] = $_SESSION['username'];
|
|
|
|
|
$data['customer_phone_number'] = '';
|
|
|
|
|
$data['customer_name'] = $_SESSION['firstname'].' '.$_SESSION['lastname'];
|
|
|
|
|
$data['consumer_id'] = $_SESSION['member_id'];
|
|
|
|
|
$data['consumer_mac'] = $_SESSION['member_id']."-912ba-1192a";
|
|
|
|
|
$data['redirect_url'] = base_url() . "dash"; //"https://oameye.work.wrenchboard.com/dash";
|
|
|
|
|
$data['public_key'] = "FLWPUBK_TEST-54c90141b028789d671067bd72f781a9-X";
|
|
|
|
|
*/
|
|
|
|
|
out["public_key"] = CfgReadChar("flutterwave.public_key");
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
REQ_LONG(in, "member_id", 1, -1);
|
|
|
|
|
REQ_LONG(in, "amount", 1, -1);
|
|
|
|
|
REQ_STRING(in, "currency", 2, 10, "(.*)");
|
|
|
|
|
CVars x;
|
|
|
|
|
x["member_id"] = in["member_id"];
|
|
|
|
|
x["member_id"].set_valid(true);
|
|
|
|
|
x["amount"] = in["amount"];
|
|
|
|
|
x["amount"].set_valid(true);
|
|
|
|
|
x["currency"] = in["currency"];
|
|
|
|
|
x["currency"].set_valid(true);
|
|
|
|
|
|
|
|
|
|
trx_id = insert_db_record(DBS_VALID, "flutterwave_payments", "flutterwave_payments_id_seq", x);
|
|
|
|
|
|
|
|
|
|
if (trx_id > 0) {
|
|
|
|
|
load_db_record(out, "SELECT fp.member_id AS consumer_id,fp.tx_ref,fp.tx_ref,fp.currency,m.phone,m.uid AS consumer_mac " \
|
|
|
|
|
"FROM flutterwave_payments fp LEFT JOIN members m ON m.id=fp.member_id WHERE fp.id =%lu",trx_id);
|
|
|
|
|
}
|
|
|
|
|
out["status"] = "OK";
|
|
|
|
|
} catch (bad_parameter) {
|
|
|
|
|
logfmt(logINFO, "ERROR CALL long WrenchBoardStartBalanceTopup(CVars in, CVars &out)");
|
|
|
|
|
}
|
|
|
|
|
return trx_id;
|
|
|
|
|
}
|
|
|
|
|
long WrenchBoardMobileSendUserWallet(CVars in, CVars &out) {
|
|
|
|
|
logfmt(logINFO, "WrenchBoardMobileSendUserWallet()");
|
|
|
|
|
char vname[30];
|
|
|
|
|