M_ID; $ptype = ''; $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); $pid = preg_replace("#[^0-9a-z]#i", "", $result->pid); $row = $dsql->GetOne("SELECT * FROM `#@__member_operation` WHERE mid='$mid' AND sta=0 AND product='$product'"); if (!isset($row['buyid'])) { ShowMsg("请不要重复提交表单", 'javascript:;'); exit(); } if ($paytype === 0) { ShowMsg("请选择支付方式", 'javascript:;'); exit(); } $buyid = $row['buyid']; } else { $buyid = 'M'.$mid.'T'.$mtime.'RN'.mt_rand(100, 999); //删除用户旧的未付款的同类记录 if (!empty($product)) { $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_operation` WHERE mid='$mid' AND sta=0 AND product='$product'"); } } if (empty($product)) { ShowMsg("请选择一个产品", 'javascript:;'); exit(); } $pid = isset($pid) && is_numeric($pid) ? $pid : 0; if ($product == 'member') { $ptype = "会员升级"; $row = $dsql->GetOne("SELECT * FROM `#@__member_type` WHERE aid='{$pid}'"); if (!is_array($row)) { ShowMsg("无法识别您的订单", 'javascript:;'); exit(); } $pname = $row['pname']; $price = $row['money']; } else if ($product == 'card') { $ptype = "积分购买"; $row = $dsql->GetOne("SELECT * FROM `#@__moneycard_type` WHERE tid='{$pid}'"); if (!is_array($row)) { ShowMsg("无法识别您的订单", 'javascript:;'); exit(); } $pname = $row['pname']; $price = $row['money']; } if ($paytype === 0) { $inquery = "INSERT INTO `#@__member_operation` (`buyid`,`pname`,`product`,`money`,`mtime`,`pid`,`mid`,`sta`,`oldinfo`) VALUES ('$buyid','$pname','$product','$price','$mtime','$pid','$mid','0','$ptype');"; $isok = $dsql->ExecuteNoneQuery($inquery); if (!$isok) { echo "数据库出错,请重新尝试".$dsql->GetError(); exit(); } if ($price == '') { echo "无法识别您的订单"; exit(); } //获取支付接口设置 $payment_list = array(); $dsql->SetQuery("SELECT * FROM `#@__sys_payment` WHERE `status`=1 ORDER BY sortrank ASC"); $dsql->Execute(); $i = 0; while ($row = $dsql->GetArray()) { $payment_list[] = $row; $i++; } $pr_encode = array(); foreach ($_REQUEST as $key => $val) { if (!in_array($key, array('product', 'pid'))) { continue; } $val = preg_replace("#[^0-9a-z]#i", "", $val); $pr_encode[$key] = $val; } $pr_encode = str_replace('=', '', mchStrCode(json_encode($pr_encode))); $pr_verify = md5("payment".$pr_encode.$cfg_cookie_encode); $tpl = new DedeTemplate(); $tpl->LoadTemplate(DEDEMEMBER.'/templets/buy_action_payment.htm'); $tpl->Display(); } else { $moRow = $dsql->GetOne("SELECT * FROM `#@__member_operation` WHERE buyid='$buyid'"); if ($moRow['sta'] == 2) { ShowMsg("已完成支付,无需重复付款", "javascript:;"); exit; } if($paytype === 1) { //微信支付 include_once(DEDEINC.'/sdks/include.php'); include_once(DEDEINC.'/libraries/oxwindow.class.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['APIv2Secret'], ); $wechat = new \WeChat\Pay($config); $options = array( 'product_id' => $buyid, 'body' => '测试商品', 'out_trade_no' => $buyid, 'total_fee' => $row['money']*100, 'trade_type' => 'NATIVE', 'notify_url' => 'https://www.dedebiz.com/notify?platform=wxpay', ); try { // 生成预支付码 $result = $wechat->createOrder($options); $payurl = $result['code_url']; $msg = "请使用微信扫一扫,扫描二维码支付: