From a1929254d2cc533a2d85da5b4dfe637f8e648715 Mon Sep 17 00:00:00 2001 From: tianya Date: Tue, 14 Feb 2023 22:32:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=94=AF=E4=BB=98=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=8F=8A=E5=85=85=E5=80=BC=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/member_do.php | 13 ++++- src/admin/sys_payment.php | 4 +- src/admin/templets/member_operations.htm | 4 +- src/user/buy.php | 1 + src/user/buy_action.php | 72 +++++++++++++++++++++++- src/user/templets/menu.htm | 2 +- 6 files changed, 87 insertions(+), 9 deletions(-) diff --git a/src/admin/member_do.php b/src/admin/member_do.php index 906fdc19..b988afd7 100644 --- a/src/admin/member_do.php +++ b/src/admin/member_do.php @@ -207,8 +207,17 @@ else if ($dopost == "memberlogin") { $nid = explode(',', $nid); if (is_array($nid)) { foreach ($nid as $var) { - $query = "UPDATE `#@__member_operation` SET sta = '2' WHERE aid = '$var'"; - $dsql->ExecuteNoneQuery($query); + $moRow = $dsql->GetOne("SELECT * FROM `#@__member_operation` WHERE aid='$var'"); + if ($moRow['sta'] == 1) { + if ($moRow['product'] === "card") { + //点卡 + $proRow = $dsql->GetOne("SELECT * FROM `#@__moneycard_type` WHERE tid={$moRow['pid']}"); + $query = "UPDATE `#@__member` SET money = money+{$proRow['num']} WHERE mid = '{$moRow['mid']}'"; + $dsql->ExecuteNoneQuery($query); + } + $query = "UPDATE `#@__member_operation` SET sta = '2' WHERE aid = '$var'"; + $dsql->ExecuteNoneQuery($query); + } ShowMsg("设置成功", "member_operations.php"); exit(); } diff --git a/src/admin/sys_payment.php b/src/admin/sys_payment.php index fc8a6cf9..67545f5b 100644 --- a/src/admin/sys_payment.php +++ b/src/admin/sys_payment.php @@ -33,14 +33,14 @@ if ($dopost === "get_payments") { foreach($config as $key => $item) { $status = 0; $sortrank = 0; - $configItem = array(); + $configItem = new stdClass; foreach($item as $kk => $ii) { if ($kk === "Enabled") { $status = $ii === true ? 1 : 0; } else if ($kk === "Sortrank") { $sortrank = intval($ii); } else { - $configItem[$kk] = $ii; + $configItem->$kk = $ii; } } $cfg = json_encode($configItem); diff --git a/src/admin/templets/member_operations.htm b/src/admin/templets/member_operations.htm index e04c8125..25de61cf 100644 --- a/src/admin/templets/member_operations.htm +++ b/src/admin/templets/member_operations.htm @@ -100,8 +100,8 @@ - - + + diff --git a/src/user/buy.php b/src/user/buy.php index 90352ace..6396ceb4 100755 --- a/src/user/buy.php +++ b/src/user/buy.php @@ -10,6 +10,7 @@ require_once(dirname(__FILE__).'/config.php'); CheckRank(0, 0); $menutype = 'mydede'; $menutype_son = 'op'; +$_menu_buy = true; $myurl = $cfg_basehost.$cfg_member_dir.'/index.php?uid='.$cfg_ml->M_LoginID; $moneycards = ''; $membertypes = ''; diff --git a/src/user/buy_action.php b/src/user/buy_action.php index c0197899..c3c81afe 100755 --- a/src/user/buy_action.php +++ b/src/user/buy_action.php @@ -8,6 +8,7 @@ */ require_once(dirname(__FILE__)."/config.php"); CheckRank(0, 0); +$dopost = isset($dopost)? $dopost : ''; $menutype = 'mydede'; $menutype_son = 'op'; require_once DEDEINC.'/dedetemplate.class.php'; @@ -18,6 +19,21 @@ $pname = ''; $price = ''; $mtime = time(); $paytype = isset($paytype)? intval($paytype) : 0; +if ($dopost === "bank_ok") { + $moRow = $dsql->GetOne("SELECT * FROM `#@__member_operation` WHERE buyid='$buyid' AND mid={$mid}"); + if (empty($moRow)) { + ShowMsg("订单查询错误,请确保是您自己发起的订单", "javascript:;"); + exit; + } + if ($moRow['sta'] == 2) { + ShowMsg("已完成支付,无需重复付款", "javascript:;"); + exit; + } + $query = "UPDATE `#@__member_operation` SET sta = '1' WHERE buyid = '{$moRow['buyid']}'"; + $dsql->ExecuteNoneQuery($query); + ShowMsg("已经完成付款,等待管理员审核", "operation.php"); + exit; +} if (isset($pd_encode) && isset($pd_verify) && md5("payment".$pd_encode.$cfg_cookie_encode) == $pd_verify) { $result = json_decode(mchStrCode($pd_encode, 'DECODE')); $product = preg_replace("#[^0-9a-z]#i", "", $result->product); @@ -102,7 +118,56 @@ if ($paytype === 0) { ShowMsg("已完成支付,无需重复付款", "javascript:;"); exit; } - if($paytype === 4) { + + if($paytype === 1) { + //微信支付 + include_once(DEDEINC.'/sdks/include.php'); + $pInfo = $dsql->GetOne("SELECT * FROM `#@__sys_payment` WHERE id = $paytype"); + $pData = (array)json_decode($pInfo['config']); + $config = array( + "appid" => $pData['AppID'], + "mch_id" => $pData['MchID'], + "mch_key" => $pData['AppSecret'], + ); + $wechat = new \WeChat\Pay($config); + $options = array( + 'product_id' => $buyid, + 'body' => '测试商品', + 'out_trade_no' => time(), + 'total_fee' => '1', + 'trade_type' => 'NATIVE', + 'notify_url' => 'http://a.com/text.html', + 'spbill_create_ip' => '127.0.0.1', + ); + try { + // 生成预支付码 + $result = $wechat->createOrder($options); + + var_dump($result); + // 创建JSAPI参数签名 + $options = $wechat->createParamsForRuleQrc($buyid); + var_dump($options);exit; + + } catch (Exception $e) { + + // 出错啦,处理下吧 + echo $e->getMessage() . PHP_EOL; + + } + } elseif ($paytype === 3) { + include_once(DEDEINC.'/libraries/oxwindow.class.php'); + //银行转账 + $pInfo = $dsql->GetOne("SELECT * FROM `#@__sys_payment` WHERE id = $paytype"); + $pData = (array)json_decode($pInfo['config']); + $msg = "请汇款至如下账户:
账户名:{$pData['AccountName']}
账号:{$pData['AccountNO']}
开户行:{$pData['Name']}
备注:{$buyid}
如您已经完成转账,请点击下面按钮,等待管理员确认后即可完成充值

已完成银行转账 返回订单管理"; + $wintitle = "银行转账"; + $wecome_info = " ";//这个空格不要去 + $win = new OxWindow(); + $win->AddMsgItem($msg); + $winform = $win->GetWindow("hand", " ", false); + $win->Display(DEDEMEMBER."/templets/win_templet.htm"); + } elseif ($paytype === 4) { + //余额付款 if ($cfg_ml->M_UserMoney < $row['money']) { ShowMsg("余额不足,请确保当前账户有足够金币支付", "javascript:;"); exit; @@ -115,6 +180,10 @@ if ($paytype === 0) { $dsql->ExecuteNoneQuery($query); ShowMsg("成功使用余额付款", "javascript:;"); exit; + } elseif ($paytype === 5) { + //货到付款 + ShowMsg("虚拟物品,不支持货到付款", "javascript:;"); + exit; } } /** @@ -151,4 +220,3 @@ function mchStrCode($string, $operation = 'ENCODE') } } } -?> \ No newline at end of file diff --git a/src/user/templets/menu.htm b/src/user/templets/menu.htm index f94511d6..4a8d9dc6 100644 --- a/src/user/templets/menu.htm +++ b/src/user/templets/menu.htm @@ -36,7 +36,7 @@ while ($channel = $dsql->GetArray('addmod')) {
  • 我的收藏
  • -
  • 积分钱包
  • +
  • 积分钱包
  • 订单详情