diff --git a/wrenchboard/src/include/wrenchboard_api.h b/wrenchboard/src/include/wrenchboard_api.h index f7a5fdfa..1ae2915c 100644 --- a/wrenchboard/src/include/wrenchboard_api.h +++ b/wrenchboard/src/include/wrenchboard_api.h @@ -219,6 +219,7 @@ enum { PARTNER_STRIPE }; #define WRENCHBOARD_ACCOUNT_WALLETS 11060 +#define WRENCHBOARD_ACCOUNT_TOPUP_RESULT 11061 #define WRENCHBOARD_ACCOUNT_PREPARE_TOPUP 11062 #define WRENCHBOARD_ACCOUNT_COMPLETE_TOPUP 11063 diff --git a/wrenchboard/src/shared_tool/account.cc b/wrenchboard/src/shared_tool/account.cc index c53d557c..63515a45 100644 --- a/wrenchboard/src/shared_tool/account.cc +++ b/wrenchboard/src/shared_tool/account.cc @@ -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]; diff --git a/www-api/app/Config/Constants.php b/www-api/app/Config/Constants.php index dfc9a40c..3283b565 100644 --- a/www-api/app/Config/Constants.php +++ b/www-api/app/Config/Constants.php @@ -231,6 +231,8 @@ define('WRENCHBOARD_USER_SETTINGS', 11058); define('WRENCHBOARD_GETUSER_SETTINGS', 11059); define('WRENCHBOARD_ACCOUNT_WALLETS', 11060); + +define('WRENCHBOARD_ACCOUNT_TOPUP_RESULT', 11061); define('WRENCHBOARD_ACCOUNT_PREPARE_TOPUP', 11062); define('WRENCHBOARD_ACCOUNT_COMPLETE_TOPUP', 11063); define('WRENCHBOARD_ACCOUNT_REFFERHX', 11064 ); diff --git a/www-api/app/Config/Routes.php b/www-api/app/Config/Routes.php index 90b98dc9..376b81c8 100644 --- a/www-api/app/Config/Routes.php +++ b/www-api/app/Config/Routes.php @@ -86,6 +86,8 @@ $routes->post('/en/wrench/api/v1/purchasehx', 'WrenchApi::apigate'); $routes->post('/en/wrench/api/v1/stepresetpass', 'WrenchApi::apigate'); $routes->post('/en/wrench/api/v1/starttopup', 'WrenchApi::apigate'); +$routes->post('/en/wrench/api/v1/topupresult', 'WrenchApi::apigate'); + $routes->post('/en/wrench/api/v1/jobmanageragree', 'WrenchApi::apigate'); diff --git a/www-api/app/Controllers/BaseController.php b/www-api/app/Controllers/BaseController.php index 5644762f..53fadda0 100644 --- a/www-api/app/Controllers/BaseController.php +++ b/www-api/app/Controllers/BaseController.php @@ -166,6 +166,7 @@ abstract class BaseController extends Controller 'activetaskslist' => ['POST'], 'profilepasschange' => ['POST'], 'starttopup' => ['POST'], + 'topupresult'=> ['POST'], 'familylist' => ['POST'], 'familyadd' => ['POST'], 'familyupdate' => ['POST'], diff --git a/www-api/app/Controllers/WrenchApi.php b/www-api/app/Controllers/WrenchApi.php index bb9ee041..ed6ecc3b 100644 --- a/www-api/app/Controllers/WrenchApi.php +++ b/www-api/app/Controllers/WrenchApi.php @@ -140,6 +140,9 @@ class WrenchApi extends BaseController case 'starttopup': $in["action"] = WRENCHBOARD_ACCOUNT_PREPARE_TOPUP; break; + case 'topupresult': + $in["action"] = WRENCHBOARD_ACCOUNT_TOPUP_RESULT; + break; case 'profilepasschange': $in["action"] = WRENCHBOARD_PROFILE_RESETPASS; break;