示例#1
0
function get_pay_url($charge_type, $pay_amount, $payment_config, $subject, $order_id, $model_id = null, $obj_id = null, $service = null, $sign_type = 'MD5', $show_url = 'index.php?do=user&view=finance&op=details')
{
    global $_K, $uid, $username;
    $charge_type == 'order_charge' and $t = "订单充值" or $t = "余额充值";
    $body = $t . "(from:" . $username . ")";
    $notify = new NativePay();
    $WxPayCfg = new WxPayCfg();
    $Out_trade_no = $WxPayCfg->_mchid . date("YmdHis");
    $attach = "charge-{$charge_type}-{$uid}-{$obj_id}-{$order_id}-{$model_id}-" . time();
    $input = new WxPayUnifiedOrder();
    $input->SetBody($body);
    $input->SetDetail($body);
    $input->SetAttach($attach);
    $input->SetOut_trade_no($Out_trade_no);
    $input->SetFee_type("CNY");
    $input->SetTotal_fee($pay_amount * 100);
    $input->SetTime_start(date("YmdHis"));
    $input->SetTime_expire(date("YmdHis", time() + 600));
    $input->SetNotify_url(BASE_WXPAY_URL . "notify.php");
    $input->SetTrade_type("NATIVE");
    $input->SetProduct_id($obj_id);
    $result = $notify->GetPayUrl($input);
    $url2 = $result["code_url"];
    keke_order_class::create_order_charge('online_charge', 'wxpay', null, $obj_id, $uid, $username, $pay_amount, 'wait', '用户充值', $Out_trade_no, null, $attach);
    $baseUrl = urlencode($url2);
    $data = array();
    $data['url'] = BASE_WXPAY_URL . "qrcode.php?data=" . $baseUrl;
    $data['out_trade_no'] = $Out_trade_no;
    return $data;
}
示例#2
0
function get_pay_url($charge_type, $pay_amount, $payment_config, $subject, $order_id, $model_id = null, $obj_id = null, $service = '', $sign_type = 'MD5', $show_url = 'index.php?do=user&view=finance&op=details')
{
    global $_K, $uid, $username, $kekezu;
    $out_trade_no = "charge-{$charge_type}-{$uid}-{$obj_id}-{$order_id}-{$model_id}-" . time();
    $return_url = $_K['siteurl'] . '/include/payment/yeepay/callback.php';
    keke_order_class::create_order_charge('online_charge', 'yeepay', null, $obj_id, $uid, $username, $pay_amount, 'wait', '用户充值', $out_trade_no);
    $p1_MerId = $payment_config['seller_id'];
    $merchantKey = $payment_config['safekey'];
    $logName = "YeePay_HTML.log";
    $reqURL_onLine = "https://www.yeepay.com/app-merchant-proxy/node";
    $p0_Cmd = "Buy";
    $p9_SAF = "0";
    $p2_Order = $order_id;
    $p3_Amt = $pay_amount;
    $p4_Cur = "CNY";
    $subject = 'kppwpay' . $order_id;
    $p5_Pid = mb_substr($subject, 0, 20, CHARSET);
    $p6_Pcat = "";
    $p7_Pdesc = $p5_Pid;
    $p8_Url = $return_url;
    $pa_MP = $out_trade_no;
    $pd_FrpId = "";
    $pr_NeedResponse = "1";
    $hmac = getReqHmacString($p2_Order, $p3_Amt, $p4_Cur, $p5_Pid, $p6_Pcat, $p7_Pdesc, $p8_Url, $pa_MP, $pd_FrpId, $pr_NeedResponse);
    $form = <<<EOT
<form  id='yeepaysubmit' name='yeepaysubmit' action='{$reqURL_onLine}' method='post'>
<input type='hidden' name='p0_Cmd'\t\t\t\t\tvalue='{$p0_Cmd}'>
<input type='hidden' name='p1_MerId'\t\t\t\tvalue='{$p1_MerId}'>
<input type='hidden' name='p2_Order'\t\t\t\tvalue='{$p2_Order}'>
<input type='hidden' name='p3_Amt'\t\t\t\t\tvalue='{$p3_Amt}'>
<input type='hidden' name='p4_Cur'\t\t\t\t\tvalue='{$p4_Cur}'>
<input type='hidden' name='p5_Pid'\t\t\t\t\tvalue='{$p5_Pid}'>
<input type='hidden' name='p6_Pcat'\t\t\t\t\tvalue='{$p6_Pcat}'>
<input type='hidden' name='p7_Pdesc'\t\t\t\tvalue='{$p7_Pdesc}'>
<input type='hidden' name='p8_Url'\t\t\t\t\tvalue='{$p8_Url}'>
<input type='hidden' name='p9_SAF'\t\t\t\t\tvalue='{$p9_SAF}'>
<input type='hidden' name='pa_MP'\t\t\t\t\t\tvalue='{$pa_MP}'>
<input type='hidden' name='pd_FrpId'\t\t\t\tvalue='{$pd_FrpId}'>
<input type='hidden' name='pr_NeedResponse'\tvalue='{$pr_NeedResponse}'>
<input type='hidden' name='hmac'\t\t\t\t\t\tvalue='{$hmac}'>
<button type='submit' class='hidden' name='v_action' value='确认付款' onClick='document.forms["yeepay"].submit();'  style='display:none;'>确认付款</button>
</form>
<script>document.forms['yeepaysubmit'].submit();</script>
EOT;
    return $form;
}
示例#3
0
function get_pay_url($charge_type, $pay_amount, $payment_config, $subject, $order_id, $model_id = null, $obj_id = null, $service = "create_direct_pay_by_user", $sign_type = 'MD5', $show_url = 'index.php?do=user&view=finance&op=details')
{
    global $_K, $uid, $username;
    $partner = $payment_config['seller_id'];
    $security_code = $payment_config['safekey'];
    $return_url = $_K['siteurl'] . '/include/payment/chinabank/return.php';
    $notify_url = $_K['siteurl'] . '/include/payment/chinabank/notify.php';
    $show_url = $_K['siteurl'] . '/' . $show_url;
    $out_trade_no = "charge-{$charge_type}-{$uid}-{$obj_id}-{$order_id}-{$model_id}-" . time();
    $total_money = $pay_amount;
    $charge_type == 'order_charge' and $t = "订单充值" or $t = "余额充值";
    $body = $t . "(from:" . $username . ")";
    $text = $pay_amount . "CNY" . $out_trade_no . $partner . $return_url . $security_code;
    $v_md5info = strtoupper(md5($text));
    $p = array("v_mid" => $partner, "v_oid" => $out_trade_no, "v_amount" => $pay_amount, "v_moneytype" => "CNY", "remark2" => '[url:=' . $notify_url . ']', "v_url" => $return_url, "v_md5info" => $v_md5info);
    keke_order_class::create_order_charge('online_charge', 'chinabank', null, $obj_id, $uid, $username, $pay_amount, 'wait', '用户充值', $out_trade_no);
    return build_postform($p);
}
示例#4
0
文件: order.php 项目: pengfeiaaa/web
function get_pay_url($charge_type, $pay_amount, $payment_config, $subject, $order_id, $model_id = null, $obj_id = null, $service = "_xclick", $sign_type = 'MD5', $show_url = 'index.php?do=user&view=finance&op=details')
{
    global $_K, $uid, $username;
    $subject = 'paypal online pay(UID=' . $uid . ')';
    $seller_account = $payment_config['account'];
    $return_url = $_K['siteurl'] . '/payment/paypal/return.php';
    $notify_url = $_K['siteurl'] . '/payment/paypal/notify.php';
    $show_url = $_K['siteurl'] . '/' . $show_url;
    $out_trade_no = "charge-{$charge_type}-{$uid}-{$obj_id}-{$order_id}-{$model_id}-" . time();
    $total_money = $pay_amount;
    if ($_SESSION['currency']) {
        $currency_code = $_SESSION['currency'];
    } else {
        $currency_code = 'CNY';
    }
    $p = array("business" => $seller_account, "cmd" => '_xclick', "custom" => $out_trade_no, "amount" => $pay_amount, "v_moneytype" => "CNY", "notify_url" => $notify_url, "return" => $return_url, "cancel_return" => $show_url, "currency_code" => $currency_code, "item_name" => $subject);
    keke_order_class::create_order_charge('online_charge', 'paypal', null, $obj_id, $uid, $username, $pay_amount, 'wait', '用户充值', $out_trade_no);
    return build_postform($p);
}
示例#5
0
function get_pay_url($charge_type, $pay_amount, $payment_config, $subject, $order_id, $model_id = null, $obj_id = null, $service = null, $sign_type = 'MD5', $show_url = 'index.php?do=user&view=finance&op=details')
{
    global $_K, $uid, $username;
    $charge_type == 'order_charge' and $t = "订单充值" or $t = "余额充值";
    if ($service === null) {
        $service = "create_direct_pay_by_user";
    }
    $body = $t . "(from:" . $username . ")";
    $parameter = array("service" => $service, "partner" => $payment_config['seller_id'], "return_url" => $_K['siteurl'] . '/include/payment/alipayjs/return.php', "notify_url" => $_K['siteurl'] . '/include/payment/alipayjs/notify.php', "_input_charset" => CHARSET, "subject" => $subject, "body" => $body, "out_trade_no" => "charge-{$charge_type}-{$uid}-{$obj_id}-{$order_id}-{$model_id}-" . time(), "total_fee" => $pay_amount, "payment_type" => "1", "show_url" => $_K['siteurl'] . $show_url, "seller_email" => $payment_config['account'], "extend_param" => "isv^kk11");
    keke_order_class::create_order_charge('online_charge', 'alipayjs', null, $obj_id, $uid, $username, $pay_amount, 'wait', '用户充值', $parameter['out_trade_no']);
    $alipay_config['partner'] = $payment_config['seller_id'];
    $alipay_config['key'] = $payment_config['safekey'];
    $alipay_config['sign_type'] = strtoupper('MD5');
    $alipay_config['input_charset'] = strtolower(CHARSET);
    $alipay_config['cacert'] = getcwd() . '\\cacert.pem';
    $alipay_config['transport'] = 'http';
    $alipaySubmit = new AlipaySubmit($alipay_config);
    $html_text = $alipaySubmit->buildRequestForm($parameter, "get", "确认");
    return $html_text;
}
示例#6
0
 private function user_charge()
 {
     global $_K;
     global $_lang;
     $uid = $this->_uid;
     $order_id = $this->_order_id;
     $order_id = keke_order_class::update_order_charge($this->_out_trade_no, $this->_total_fee);
     $order_info = db_factory::get_one(sprintf(" select order_status,order_type from %switkey_order_charge where order_id='%d' and uid='%d'", TABLEPRE, $order_id, $uid));
     if ($order_info['order_status'] == 'wait') {
         db_factory::execute(sprintf(" update %switkey_order_charge set order_status='ok' where order_id='%d'", TABLEPRE, $order_id));
         $res = keke_finance_class::cash_in($uid, $this->_total_fee, $order_info['order_type'], $this->_charge_type, 'user_charge', $order_id);
         $v_arr = array($_lang['recharge_account'] => $this->_total_fee);
         keke_shop_class::notify_user($this->_uid, $this->_username, "pay_success", $_lang['online_recharge_success'], $v_arr, 2);
     } else {
         $res = true;
     }
     if ($res) {
         return $this->struct_response($_lang['operate_notice'], $_lang['online_recharge_success'], $url, 'success');
     } else {
         return $this->struct_response($_lang['operate_notice'], $_lang['online_recharge_fail'], $url, 'warning');
     }
 }
示例#7
0
function get_pay_url($charge_type, $pay_amount, $payment_config, $subject, $order_id, $model_id = null, $obj_id = null, $service = "DEFAULT", $sign_type = 'MD5', $show_url = 'index.php?do=user&view=finance&op=details')
{
    global $_K, $uid, $username;
    $tenpayid = $payment_config['seller_id'];
    $tenpaykey = $payment_config['safekey'];
    $tenpay_return_url = $_K['siteurl'] . '/include/payment/tenpay/return.php';
    $order_no = $order_id;
    $product_name = $subject;
    $order_price = $pay_amount;
    $out_trade_no = "charge-{$charge_type}-{$uid}-{$obj_id}-{$order_id}-{$model_id}-" . time();
    $remarkexplain = $out_trade_no;
    $bargainor_id = $tenpayid;
    $key = $tenpaykey;
    $return_url = $tenpay_return_url;
    $strDate = date("Ymd");
    $strTime = date("His");
    $randNum = rand(1000, 9999);
    $strReq = $strTime . $randNum;
    $sp_billno = $order_no;
    $transaction_id = $bargainor_id . $strDate . $strReq;
    $total_fee = $order_price * 100;
    $desc = $product_name;
    $reqHandler = new PayRequestHandler();
    $reqHandler->init();
    $reqHandler->setKey($key);
    $reqHandler->setParameter("bargainor_id", $bargainor_id);
    $reqHandler->setParameter("sp_billno", $sp_billno);
    $reqHandler->setParameter("transaction_id", $transaction_id);
    $reqHandler->setParameter("total_fee", $total_fee);
    $reqHandler->setParameter("return_url", $return_url);
    $reqHandler->setParameter("desc", $desc);
    $reqHandler->setParameter("attach", $remarkexplain);
    $reqHandler->setParameter("bank_type", $service);
    $reqHandler->setParameter('cs', CHARSET);
    $reqHandler->setParameter("spbill_create_ip", kekezu::get_ip());
    $reqUrl = $reqHandler->getRequestURL();
    keke_order_class::create_order_charge('online_charge', 'tenpay', null, $obj_id, $uid, $username, $pay_amount, 'wait', '用户充值', $out_trade_no);
    return build_postform($reqUrl);
}
示例#8
0
文件: gy.php 项目: huangbinzd/kppwGit
        break;
}
if ($action === 'rights') {
    $transname = keke_report_class::get_transrights_name($type);
    if ($type == '1') {
        if ($arrOrderInfo['order_uid'] == $gUid) {
            $objType = 'work';
        } else {
            $objType = 'task';
        }
        $report_reason = keke_report_class::getRightsType($objType);
    } else {
        $report_reason = keke_report_class::getReportType($objType);
    }
    if (isset($formhash) && kekezu::submitcheck($formhash)) {
        $resText = keke_order_class::set_report($objId, $toUid, $type, $filepath, $tarContent, $sltReason);
        if ($resText === true) {
            kekezu::show_msg('感谢您的' . $transname . ',管理员会尽快受理,请耐心等待处理结果。', $strUrl . "&orderId=" . $orderId, 3, NULL, 'ok');
        } else {
            kekezu::show_msg($resText, null, null, NULL, 'fail');
        }
    } else {
        $strUrl = $reportUrl;
        require keke_tpl_class::template("tpl/default/ajax/report");
    }
    exit(0);
}
if ($action === 'showKf') {
    $kf_info = kekezu::get_rand_kf();
    require keke_tpl_class::template('shop/goods/tpl/default/order/kf_info');
    die;
示例#9
0
$fac_obj = new pay_return_fac_class($charge_type, $model_id, $uid, $obj_id, $order_id, $myPaypal->ipnData['mc_gross'], 'paypal', $myPaypal->ipnData['custom']);
if ($valid) {
    $total_fee = $myPaypal->ipnData['mc_fee'];
    if ($myPaypal->ipnData['payment_status'] == 'Completed') {
        $response = $fac_obj->load();
        if ($charge_type == 'user_charge') {
            $show_url = 'index.php?do=recharge&cash=' . $total_fee . '&status=1';
        } elseif ($charge_type == 'payitem_charge') {
            if (!in_array($model_id, array(6, 7))) {
                $show_url = 'index.php?do=task&id=' . $obj_id;
            } else {
                $show_url = 'index.php?do=goods&id=' . $obj_id;
            }
        } else {
            if (!in_array($model_id, array(6, 7))) {
                $arrOrderDetail = keke_order_class::get_order_detail($order_id);
                if ($arrOrderDetail[0]['obj_type'] == 'hosted') {
                    $show_url = 'index.php?do=task&id=' . $obj_id;
                } else {
                    $show_url = 'index.php?do=pay&type=task&id=' . $obj_id . '&status=1';
                }
            } else {
                $show_url = 'index.php?do=pay&type=order&id=' . $order_id . '&status=1';
            }
        }
        $response['url'] = $_K['siteurl'] . '/' . $show_url;
    } else {
        $response['url'] = 'index.php';
    }
} else {
    $response['url'] = 'index.php';
示例#10
0
 public function dispose_order($order_id, $action, $isApp = FALSE)
 {
     global $uid, $username, $_K, $kekezu, $_lang;
     $order_info = keke_order_class::get_order_info($order_id);
     if ($order_info) {
         $s_order_link = "<a href=\"" . $_K['siteurl'] . "/index.php?do=user&view=transaction&op=sold&intModelId=" . $order_info['model_id'] . "&order_id=" . $order_id . "\">" . $order_info['order_name'] . "</a>";
         $b_order_link = "<a href=\"" . $_K['siteurl'] . "/index.php?do=user&view=transaction&op=orders&intModelId=" . $order_info['model_id'] . "&order_id=" . $order_id . "\">" . $order_info['order_name'] . "</a>";
         if ($uid == $order_info['order_uid'] || $uid == $order_info['seller_uid']) {
             $service_info = keke_shop_class::get_service_info($order_info['obj_id']);
             switch ($action) {
                 case "wait":
                     $res = keke_order_class::set_order_status($order_id, $action);
                     if ($res) {
                         if ($order_info['obj_type'] == 'gy') {
                             self::sendNoticeToBuyer($order_info, '对方已经接受了你的雇佣要求');
                         } else {
                             $v_arr = array($_lang['user_msg'] => $order_info['seller_username'], $_lang['action'] => $_lang['recept_your_order'], $_lang['order_id'] => $order_id, $_lang['order_link'] => $b_order_link);
                             keke_shop_class::notify_user($order_info['order_uid'], $order_info['order_username'], "order_create", $_lang['goods_order_recept'], $v_arr);
                         }
                         if ($isApp) {
                             app_class::response(array('ret' => 1008, 'orderid' => $order_id));
                         } else {
                             return true;
                         }
                     } else {
                         if ($isApp) {
                             app_class::response(array('ret' => 1009, 'orderid' => $order_id));
                         } else {
                             return $_lang['order_deal_fail_and_link_kf'];
                         }
                     }
                     break;
                 case "ok":
                     if ($order_info['obj_type'] == 'gy') {
                         $data = array(':title' => $order_info['order_name']);
                     } else {
                         $data = array(':service_id' => $order_info['obj_id'], ':title' => $order_info['order_name']);
                         $v_arr = array($_lang['user_msg'] => $order_info['seller_username'], $_lang['action'] => $_lang['recept_your_order'], $_lang['order_id'] => $order_id, $_lang['order_link'] => $b_order_link);
                         keke_shop_class::notify_user($order_info['order_uid'], $order_info['order_username'], "order_change", $_lang['goods_order_recept'], $v_arr);
                     }
                     keke_finance_class::init_mem('buy_' . $order_info['obj_type'], $data);
                     if ($order_info['order_amount'] > 0) {
                         $suc = keke_finance_class::cash_out($order_info['order_uid'], $order_info['order_amount'], 'buy_' . $order_info['obj_type'], '', 'service', $order_info['obj_id']);
                     } else {
                         $suc = 1;
                     }
                     if ($suc) {
                         db_factory::execute("update " . TABLEPRE . "witkey_finance set order_id={$order_id} where fina_id={$suc}");
                         keke_order_class::set_order_status($order_id, $action);
                         if ($order_info['obj_type'] == 'gy') {
                             $complete_time = time() + 3600 * 24 * 7;
                         } else {
                             if ($service_info['unit_time']) {
                                 $unit_time = $service_info['unit_time'];
                                 switch ($unit_time) {
                                     case '小时':
                                         $complete_time = time() + intval($service_info['service_time']) * 3600;
                                         break;
                                     case '天':
                                         $complete_time = time() + intval($service_info['service_time']) * 3600 * 24;
                                         break;
                                     case '周':
                                         $complete_time = time() + intval($service_info['service_time']) * 3600 * 24 * 7;
                                         break;
                                     case '月':
                                         $complete_time = time() + intval($service_info['service_time']) * 3600 * 24 * 30;
                                         break;
                                 }
                             }
                         }
                         db_factory::execute("update " . TABLEPRE . "witkey_order set service_end_time = {$complete_time} where order_id={$order_info['order_id']}");
                         if ($order_info['obj_type'] == 'gy') {
                             self::sendNoticeToSeller($order_info, '对方已付款');
                         } else {
                             $v_arr = array($_lang['user_msg'] => $order_info['order_username'], $_lang['action'] => ' 已完成付款', $_lang['order_id'] => $order_id, $_lang['order_link'] => $s_order_link);
                             keke_shop_class::notify_user($order_info['seller_uid'], $order_info['seller_username'], "order_change", $_lang['goods_order_confirm_pay'], $v_arr);
                         }
                         if ($isApp) {
                             app_class::response(array('ret' => 1010, 'orderinfo' => $order_info));
                         } else {
                             return true;
                         }
                     } else {
                         if ($isApp) {
                             app_class::response(array('ret' => 1011, 'orderinfo' => $order_info));
                         } else {
                             return '订单付款失败,您的账户余额不足以支付该订单<br />点击这里<a href="index.php?do=pay&id=' . $order_info['order_id'] . '&type=order">去充值</a>';
                         }
                     }
                     break;
                 case "close":
                     $res = keke_order_class::order_cancel_return($order_id);
                     if ($res) {
                         keke_order_class::set_order_status($order_id, $action);
                         if ($order_info['obj_type'] == 'gy') {
                             self::sendNoticeToSeller($order_info, '对方关闭订单');
                         } else {
                             $v_arr = array($_lang['user_msg'] => $order_info['order_username'], $_lang['action'] => $_lang['close_order_have'], $_lang['order_id'] => $order_id, $_lang['order_link'] => $s_order_link);
                             keke_shop_class::notify_user($order_info['seller_uid'], $order_info['seller_username'], "order_change", $_lang['goods_order_close'], $v_arr);
                         }
                         if ($isApp) {
                             app_class::response(array('ret' => 1012, 'orderinfo' => $order_info));
                         } else {
                             return true;
                         }
                     } else {
                         if ($isApp) {
                             app_class::response(array('ret' => 1013, 'orderinfo' => $order_info));
                         } else {
                             return $_lang['order_deal_fail_and_link_kf'];
                         }
                     }
                     break;
                 case 'over_time_close':
                     $res = keke_order_class::order_cancel_return($order_id);
                     if ($res) {
                         keke_order_class::set_order_status($order_id, 'close');
                         if ($order_info['obj_type'] == 'gy') {
                             self::sendNoticeToSeller($order_info, '对方超时未完成服务');
                         } else {
                             $v_arr = array($_lang['user_msg'] => $order_info['order_username'], $_lang['action'] => $_lang['close_order_have'], $_lang['order_id'] => $order_id, $_lang['order_link'] => $s_order_link);
                             keke_shop_class::notify_user($order_info['seller_uid'], $order_info['seller_username'], "order_change", '超时未完成服务', $v_arr);
                         }
                     }
                     break;
                 case "confirm_complete":
                     $res = keke_order_class::set_order_status($order_id, $action);
                     if ($res) {
                         $objProm = keke_prom_class::get_instance();
                         if ($objProm->is_meet_requirement("service", $order_info[obj_id])) {
                             $objProm->create_prom_event("service", $order_info['order_uid'], $order_info['obj_id'], $order_info['order_amount']);
                         }
                         if ($order_info['obj_type'] == 'gy') {
                             self::sendNoticeToBuyer($order_info, '对方确认服务工作完成');
                         } else {
                             $v_arr = array($_lang['user_msg'] => $order_info['seller_username'], $_lang['action'] => '服务完成', $_lang['order_id'] => $order_id, $_lang['order_link'] => $b_order_link);
                             keke_shop_class::notify_user($order_info['order_uid'], $order_info['order_username'], "order_change", '服务完成', $v_arr);
                         }
                         if ($order_info['obj_type'] == 'gy') {
                             $arrServiceConfig = unserialize($kekezu->_model_list[7]['config']);
                             $cut_time = time() + intval($arrServiceConfig['confirm_max_day']) * 24 * 3600;
                         } else {
                             $cut_time = time() + $service_info['confirm_max'] * 24 * 3600;
                         }
                         db_factory::execute(sprintf("update %switkey_order set ys_end_time = %d where order_id=%d", TABLEPRE, $cut_time, $order_id));
                         if ($isApp) {
                             app_class::response(array('ret' => 1014, 'orderinfo' => $order_info));
                         } else {
                             return true;
                         }
                     } else {
                         if ($isApp) {
                             app_class::response(array('ret' => 1015, 'orderinfo' => $order_info));
                         } else {
                             return $_lang['order_deal_fail_and_link_kf'];
                         }
                     }
                     break;
                 case "accept":
                     $res = keke_order_class::set_order_status($order_id, $action);
                     if ($res) {
                         $objProm = keke_prom_class::get_instance();
                         if ($objProm->is_meet_requirement("service", $order_info[obj_id])) {
                             $objProm->create_prom_event("service", $order_info['order_uid'], $order_info['obj_id'], $order_info['order_amount']);
                         }
                         if ($order_info['obj_type'] == 'gy') {
                             self::sendNoticeToBuyer($order_info, '对方确认接收订单');
                         } else {
                             $v_arr = array($_lang['user_msg'] => $order_info['seller_username'], $_lang['action'] => $_lang['recept_your_order'], $_lang['order_id'] => $order_id, $_lang['order_link'] => $b_order_link);
                             keke_shop_class::notify_user($order_info['order_uid'], $order_info['order_username'], "order_change", $_lang['goods_order_recept'], $v_arr);
                         }
                         if ($isApp) {
                             app_class::response(array('ret' => 1016, 'orderinfo' => $order_info));
                         } else {
                             return true;
                         }
                     } else {
                         if ($isApp) {
                             app_class::response(array('ret' => 1017, 'orderinfo' => $order_info));
                         } else {
                             return $_lang['order_deal_fail_and_link_kf'];
                         }
                     }
                     break;
                 case "working":
                     $intRes = keke_order_class::set_order_status($order_id, $action);
                     if ($order_info['obj_type'] == 'gy') {
                         self::sendNoticeToBuyer($order_info, '对方已经开始工作');
                     }
                     if ($intRes) {
                         return true;
                     } else {
                         return '操作失败';
                     }
                     break;
                 case "send":
                     $res = keke_order_class::set_order_status($order_id, $action);
                     if ($res) {
                         if ($order_info['obj_type'] == 'gy') {
                             self::sendNoticeToBuyer($order_info, '对方确认服务完成');
                         } else {
                             $v_arr = array($_lang['user_msg'] => $order_info['seller_username'], $_lang['action'] => $_lang['confirm_service_complete'], $_lang['order_id'] => $order_id, $_lang['order_link'] => $b_order_link);
                             keke_shop_class::notify_user($order_info['order_uid'], $order_info['order_username'], "order_change", $_lang['service_order_confirm_complete'], $v_arr);
                         }
                         if ($isApp) {
                             app_class::response(array('ret' => 1018, 'orderinfo' => $order_info));
                         } else {
                             kekezu::keke_show_msg('', $_lang['order_deal_complete_and_order_comfirm'], '', 'json');
                         }
                     } else {
                         if ($isApp) {
                             app_class::response(array('ret' => 1019, 'orderinfo' => $order_info));
                         } else {
                             kekezu::keke_show_msg('', $_lang['order_deal_fail_and_link_kf'], 'error', 'json');
                         }
                     }
                     break;
                 case "complete":
                     $res = keke_order_class::set_order_status($order_id, $action);
                     if ($res) {
                         $model_info = $kekezu->_model_list[$order_info['model_id']];
                         if ($order_info['obj_type'] == 'gy') {
                             $arrServiceConfig = unserialize($kekezu->_model_list[7]['config']);
                             $profit = floatval($arrServiceConfig['service_profit']) * $order_info['order_amount'] / 100;
                         } else {
                             $profit = $service_info['profit_rate'] * $order_info['order_amount'] / 100;
                         }
                         if ($order_info['obj_type'] == 'gy') {
                             $data = array(':title' => $order_info['order_name']);
                         } else {
                             $data = array(':service_id' => $order_info['obj_id'], ':title' => $order_info['order_name']);
                         }
                         keke_finance_class::init_mem('sale_' . $order_info['obj_type'], $data);
                         keke_finance_class::cash_in($order_info['seller_uid'], $order_info['order_amount'] - $profit, 'sale_' . $order_info['obj_type'], '', 'service', $order_info['obj_id'], $profit);
                         keke_shop_class::plus_sale_num($order_info['obj_id'], $order_info['order_amount']);
                         keke_user_mark_class::create_mark_log($model_info['model_code'], 2, $order_info['order_uid'], $order_info['seller_uid'], $order_id, $order_info['order_amount'] - $profit, $order_info['obj_id'], $order_info['order_username'], $order_info['seller_username']);
                         keke_user_mark_class::create_mark_log($model_info['model_code'], 1, $order_info['seller_uid'], $order_info['order_uid'], $order_id, $order_info['order_amount'], $order_info['obj_id'], $order_info['seller_username'], $order_info['order_username']);
                         keke_shop_class::plus_mark_num($order_info['obj_id']);
                         $objProm = keke_prom_class::get_instance();
                         $objProm->dispose_prom_event("service", $order_info['order_uid'], $order_info['obj_id']);
                         if ($order_info['obj_type'] == 'gy') {
                             self::sendNoticeToSeller($order_info, '对方工作验收完成');
                         } else {
                             $v_arr = array($_lang['user_msg'] => $order_info['order_username'], $_lang['action'] => $_lang['confirm_service_complete'], $_lang['order_id'] => $order_id, $_lang['order_link'] => $s_order_link);
                             keke_shop_class::notify_user($order_info['seller_uid'], $order_info['seller_username'], "order_change", $_lang['service_order_confirm_complete'], $v_arr);
                         }
                         if ($isApp) {
                             app_class::response(array('ret' => 1020, 'orderinfo' => $order_info));
                         } else {
                             return true;
                         }
                     } else {
                         if ($isApp) {
                             app_class::response(array('ret' => 1021, 'orderinfo' => $order_info));
                         } else {
                             return $_lang['order_deal_fail_and_link_kf'];
                         }
                     }
                     break;
                 case "arbitral":
                     $res = keke_order_class::set_order_status($order_id, $action);
                     if ($res) {
                         if ($order_info['obj_type'] == 'gy') {
                             if ($uid == $order_info['order_uid']) {
                                 self::sendNoticeToSeller($order_info, $_lang['sevice_order_arbitrate_submit']);
                             } else {
                                 self::sendNoticeToBuyer($order_info, $_lang['sevice_order_arbitrate_submit']);
                             }
                         } else {
                             if ($uid == $order_info['order_uid']) {
                                 $v_arr = array($_lang['user_msg'] => $order_info['order_username'], $_lang['action'] => $_lang['buyer_start_arbitrate'], $_lang['order_id'] => $order_id, $_lang['order_link'] => $s_order_link);
                                 keke_shop_class::notify_user($order_info['seller_uid'], $order_info['seller_username'], "order_change", $_lang['sevice_order_arbitrate_submit'], $v_arr);
                             } else {
                                 $v_arr = array($_lang['user_msg'] => $order_info['seller_username'], $_lang['action'] => $_lang['seller_start_arbitrate'], $_lang['order_id'] => $order_id, $_lang['order_link'] => $b_order_link);
                                 keke_shop_class::notify_user($order_info['order_uid'], $order_info['order_username'], "order_change", $_lang['sevice_order_arbitrate_submit'], $v_arr);
                             }
                         }
                         if ($isApp) {
                             app_class::response(array('ret' => 1022, 'orderinfo' => $order_info));
                         } else {
                             return true;
                         }
                     } else {
                         if ($isApp) {
                             app_class::response(array('ret' => 1023, 'orderinfo' => $order_info));
                         } else {
                             return $_lang['order_deal_fail_and_link_kf'];
                         }
                     }
                     break;
                 case "delete":
                     $res = keke_order_class::del_order($order_id);
                     if ($isApp) {
                         $res and app_class::response(array('ret' => 1006)) or app_class::response(array('ret' => 1007));
                     } else {
                         $res and kekezu::keke_show_msg('', $_lang['order_delete_success'], "", 'json') or kekezu::keke_show_msg('', $_lang['order_delete_fail'], "error", 'json');
                     }
                     break;
             }
         } else {
             if ($isApp) {
                 app_class::response(array('ret' => 1024, 'orderinfo' => $order_info));
             } else {
                 return $_lang['error_order_num_notice'];
             }
         }
     } else {
         if ($isApp) {
             app_class::response(array('ret' => 1025, 'orderinfo' => $order_info));
         } else {
             return $_lang['no_exist_goods_order'];
         }
     }
 }
 public function create_task_order($task_id, $model_id, $release_info, $order_status = 'ok')
 {
     global $uid, $username;
     global $_lang;
     $oder_obj = new Keke_witkey_order_class();
     $order_detail = new Keke_witkey_order_detail_class();
     $task_cash = floatval($release_info['txt_task_cash']);
     $att_cash = floatval($release_info['hdn_total_costs']);
     $order_name = $release_info['txt_title'];
     if ($att_cash > 0) {
         $order_amount = $task_cash + $att_cash;
         $model_id == 16 and $order_amount = $att_cash;
     } else {
         $order_amount = $task_cash;
         $model_id == 16 and $order_amount = 0;
     }
     if ($model_id == 16) {
         $config = $this->_task_config;
         intval($config['examine']) == 2 and $status = 2 or $status = 1;
         db_factory::updatetable(TABLEPRE . 'witkey_task', array('task_status' => $status), array('task_id' => $task_id));
     }
     $order_body = $_lang['pub_task'] . "<a href=\"index.php?do=task&id={$task_id}\">" . $order_name . "</a>";
     $order_amount > 0 and $order_id = keke_order_class::create_order($model_id, $uid, $username, $order_name, $order_amount, $order_body, $order_status);
     if ($order_id) {
         $model_id == 16 and $task_cash = 0;
         $task_cash > 0 and keke_order_class::create_order_detail($order_id, $release_info['txt_title'], 'task', intval($task_id), $task_cash);
         if ($this->_task_obj->getTask_status() != 0) {
             $this->_model_info['model_code'] == 'tender' and $site_profit = $task_cash;
             $taskinfo = $this->_task_obj;
         }
         return $order_id;
     }
 }
<?php

defined('IN_KEKE') or exit('Access Denied');
$strUrl = "index.php?do=user&view=finance&op=rechargeoffline";
$arrOfflinePayList = keke_finance_class::get_pay_config('', 'offline');
$pay_open_status = false;
foreach ($arrOfflinePayList as $k => $v) {
    if ($v['pay_status'] == '1') {
        $pay_open_status = true;
    }
}
$arrPayConfig = kekezu::get_table_data("k,v", "witkey_pay_config", '', '', '', '', 'k');
if (isset($formhash) && kekezu::submitcheck($formhash)) {
    $strPayInfo = kekezu::escape($pay_info);
    if ($pay_money < $arrPayConfig['recharge_min']['v']) {
        $tips['errors']['pay_money'] = '充值金额不能少于' . $arrPayConfig['recharge_min']['v'];
        kekezu::show_msg($tips, NULL, NULL, NULL, 'error');
    }
    if ($pay_money > 100000) {
        $tips['errors']['pay_money'] = '充值金额不能大于100000';
        kekezu::show_msg($tips, NULL, NULL, NULL, 'error');
    }
    $floatCash = keke_curren_class::convert(abs($pay_money), 0, true) + 0;
    $intOrderId = keke_order_class::createUserChargeOrder('offline_charge', $offline, $floatCash, $strPayInfo);
    if ($intOrderId) {
        kekezu::show_msg('提交成功,等待后台审核', 'index.php?do=user&view=finance&op=basic&type=charge', NULL, NULL, 'ok');
    } else {
        kekezu::show_msg('提交失败', NULL, NULL, NULL, 'error');
    }
}
示例#13
0
<?php

defined('IN_KEKE') or exit('Access Denied');
$strUrl = "index.php?do=user&view=finance&op=basic&page={$page}&pageSize={$pageSize}&ord={$ord}&type={$type}";
$arrSort = array('1' => '编号升序', '2' => '编号降序', '3' => '时间升序', '4' => '时间降序');
$w = " username  = '******'";
$page and $page = intval($page);
$pageSize and $pageSize = intval($pageSize) or $pageSize = 10;
$bank_arr = keke_glob_class::get_bank();
$onlinePay = keke_glob_class::get_online_pay();
if ($type == 'charge') {
    $charge_type_arr = keke_glob_class::get_charge_type();
    $status_arr = keke_order_class::get_order_status();
    $intFinaId and $w .= " and order_id ='" . intval($intFinaId) . "'";
    switch ($ord) {
        case 1:
            $w .= ' order by order_id asc';
            break;
        case 2:
            $w .= ' order by order_id desc';
            break;
        case 3:
            $w .= ' order by pay_time asc';
            break;
        case 4:
            $w .= ' order by pay_time desc';
            break;
    }
    $strSql = "select * from " . TABLEPRE . "witkey_order_charge where ";
    if (!$ord) {
        $w .= ' order by order_id desc';
示例#14
0
 public function dispose_order($order_id)
 {
     global $kekezu, $_K;
     global $_lang;
     $task_info = $this->_task_info;
     $task_status = $this->_task_status;
     $url = $_K['siteurl'] . '/index.php?do=task&id=' . $this->_task_id;
     $order_info = db_factory::get_one(sprintf("select * from %switkey_order where order_id='%d'", TABLEPRE, $order_id));
     $order_amount = $order_info['order_amount'];
     if ($order_info['order_status'] == 'ok') {
         $task_status == 1 && ($notice = $_lang['task_pay_success_and_wait_admin_audit']);
         $task_status == 2 && ($notice = $_lang['task_pay_success_and_task_pub_success']);
         return pay_return_fac_class::struct_response($_lang['operate_notice'], $notice, $url, 'success');
     } else {
         $balance = floatval($this->_g_userinfo['balance']);
         $order_amount = floatval($order_info['order_amount']);
         $leave_cash = $balance - $order_amount;
         if ($leave_cash >= 0) {
             $order_type = db_factory::get_count(sprintf("select obj_type from %switkey_order_detail where order_id='%d' and obj_type in('hosted','task') ", TABLEPRE, $order_id));
             if ($order_type == 'hosted') {
                 $action = 'hosted_margin';
                 $to_status = 6;
                 $msg = $_lang['order_pay_success_and_task_cash_trust_succss'];
             } else {
                 $action = 'pub_task';
                 if ($this->_task_config['open_audit'] == 'close') {
                     $to_status = 2;
                     $msg = $_lang['order_pay_success_and_your_task_success'];
                 } else {
                     $to_status = 1;
                     $msg = $_lang['order_pay_success_and_wait_amin_audit'];
                 }
             }
             $arrOrderDetail = keke_order_class::get_order_detail($order_id);
             foreach ($arrOrderDetail as $k => $v) {
                 if (($v['obj_type'] == 'task' || $v['obj_type'] == 'hosted') && $v['detail_type'] == null) {
                     $data = array($kekezu->_model_list[$task_info['model_id']]['model_name'], $task_info['task_id'], $task_info['task_title']);
                     keke_finance_class::init_mem($action, $data);
                     $res = keke_finance_class::cash_out($this->_guid, $v['price'], $action, 0, 'task', $this->_task_id);
                 } else {
                     PayitemClass::createPayitemRecord($v['detail_type'], $v['num'], $v['obj_type'], $v['obj_id']);
                 }
             }
             if ($res) {
                 $objProm = keke_prom_class::get_instance();
                 if ($objProm->is_meet_requirement("pub_task", $this->_task_id)) {
                     $objProm->create_prom_event("pub_task", $this->_guid, $this->_task_id, $this->_task_info['real_cash']);
                 }
                 keke_order_class::update_fina_order($res, $order_id);
                 if ($action == 'pub_task') {
                     if ($to_status == '2') {
                         $feed_arr = array("feed_username" => array("content" => $task_info['username'], "url" => "index.php?do=seller&id={$task_info['uid']}"), "action" => array("content" => $_lang['pub_task'], "url" => ""), "event" => array("content" => "{$task_info['task_title']}", "url" => "index.php?do=task&id={$task_info['task_id']}", "cash" => $task_info['task_cash_coverage'] ? $task_info['task_cash_coverage'] : $task_info['task_cash'], "model_id" => "{$this->_model_id}"));
                         kekezu::save_feed($feed_arr, $task_info['uid'], $task_info['username'], 'pub_task', $task_info['task_id']);
                         $status_arr = self::get_task_status();
                         $url = '<a href="' . $_K['siteurl'] . '/index.php?do=task&id=' . $task_info['task_id'] . '"  target="_blank">' . $task_info['task_title'] . '</a>';
                         $v = array('model_name' => $this->_model_name, 'task_id' => $task_info['task_id'], $_lang['task_title'] => $task_info['task_title'], $_lang['task_id'] => $task_info['task_id'], $_lang['task_link'] => $url, $_lang['task_status'] => $status_arr[2], '开始时间' => date('Y-m-d H:i:s', $task_info['start_time']), '投稿结束时间' => date('Y-m-d H:i:s', $task_info['sub_time']), '选稿结束时间' => date('Y-m-d H:i:s', $task_info['end_time']));
                         $this->notify_user("task_pub", '任务发布通知', $v, $notify_type = 1, $task_info['uid']);
                     }
                     db_factory::execute(sprintf(" update %switkey_task set cash_cost='%s' where task_id='%d'", TABLEPRE, $task_info['task_cash'], $this->_task_id));
                 }
                 $this->set_task_status($to_status);
                 keke_order_class::set_order_status($order_id, 'ok');
                 return pay_return_fac_class::struct_response($_lang['operate_notice'], $_lang['order_pay_success'], $url, 'success');
             } else {
                 $pay_url = $_K['siteurl'] . "/index.php?do=pay&order_id={$order_id}";
                 return pay_return_fac_class::struct_response($_lang['operate_notice'], $_lang['task_pay_error_and_please_repay'], $url, 'warning');
             }
         } else {
             $pay_url = $_K['siteurl'] . "/index.php?do=pay&order_id={$order_id}";
             return pay_return_fac_class::struct_response($_lang['operate_notice'], $_lang['task_pay_error_and_please_repay'], $pay_url, 'warning');
         }
     }
 }
示例#15
0
<?php

defined('IN_KEKE') or exit('Access Denied');
$strUrl = "index.php?do=user&view=finance&op=rechargelog";
$intPagesize and $strUrl .= "&intPagesize=" . intval($intPagesize);
$intOrderId and $strUrl .= "&intOrderId=" . intval($intOrderId);
$strOrderType and $strUrl .= "&strOrderType=" . strval($strOrderType);
$strOrder and $strUrl .= "&strOrder=" . strval($strOrder);
$objChargeT = keke_table_class::get_instance('witkey_order_charge');
$arrOrderType = keke_glob_class::get_charge_type();
$arrBank = keke_glob_class::get_bank();
$arrStatus = keke_order_class::get_order_status();
$arrOrder = array('order_id desc' => '充值单号降序', 'order_id asc' => '充值单号升序', 'pay_time desc' => '充值时间降序', 'pay_time asc' => '充值时间升序');
$page and $intPage = intval($page);
$intPage = intval($intPage) ? $intPage : 1;
$intPagesize = intval($intPagesize) ? $intPagesize : 10;
$strWhere = ' 1 = 1  and uid = ' . intval($gUid);
$intOrderId && $intOrderId != '' and $strWhere .= " and order_id = '{$intOrderId}' ";
$strOrderType and $strWhere .= " and order_type = '{$strOrderType}' ";
$floatCountCashs = kekezu::get_table_data(" sum(pay_money) as cash,order_status ", "witkey_order_charge", " {$strWhere} ", "", " order_status", "", "order_status");
$strOrder && in_array($strOrder, array_keys($arrOrd)) and $strWhere .= " order by {$strOrder} " or $strWhere .= " order by order_id desc ";
$arrDatas = $objChargeT->get_grid($strWhere, $strUrl, $intPage, $intPagesize, null, null, null);
$arrChargeLists = $arrDatas['data'];
$strPages = $arrDatas['pages'];
示例#16
0
 public function dispose_order($order_id, $action, $is_kf = null, $ht_url = null, $kefu_uid = NULL, $isApp = false)
 {
     global $_lang, $uid, $username, $_K, $kekezu;
     if ($is_kf && $is_kf != 'sys' && $kefu_uid) {
         $u_info = kekezu::get_user_info($kefu_uid);
         if ($u_info['group_id'] == 7) {
             $kefu = TRUE;
         } else {
             $kefu = false;
         }
     } else {
         $kefu = false;
     }
     if ($is_kf == 'sys') {
         $kefu = TRUE;
     }
     $order_info = keke_order_class::get_order_info($order_id);
     $service_info = keke_shop_class::get_service_info($order_info['obj_id']);
     if ($order_info) {
         $s_order_link = "<a href=\"" . $_K['siteurl'] . "/index.php?do=user&view=transaction&op=sold&intModelId=" . $service_info['model_id'] . "\">" . $order_info['order_name'] . "</a>";
         $b_order_link = "<a href=\"" . $_K['siteurl'] . "/index.php?do=user&view=transaction&op=orders&intModelId=" . $service_info['model_id'] . "\">" . $order_info['order_name'] . "</a>";
         if ($uid == $order_info['order_uid'] || $uid == $order_info['seller_uid'] || $uid == ADMIN_UID || $kefu) {
             if ($service_info['service_status'] == '2') {
                 if ($action == 'delete') {
                     $res = keke_order_class::del_order($order_id, '', 'json');
                     if ($isApp) {
                         $res and app_class::response(array('ret' => 1006)) or app_class::response(array('ret' => 1007));
                     }
                 } else {
                     switch ($action) {
                         case "ok":
                             $data = array(':service_id' => $service_info['service_id'], ':title' => $service_info['title']);
                             keke_finance_class::init_mem('buy_service', $data);
                             if ($order_info['order_amount'] > 0) {
                                 $suc = keke_finance_class::cash_out($order_info['order_uid'], $order_info['order_amount'], 'buy_service', '', 'service', $order_info['obj_id']);
                             } else {
                                 $suc = 1;
                             }
                             if ($suc) {
                                 db_factory::execute("update " . TABLEPRE . "witkey_finance set order_id={$order_id} where fina_id={$suc}");
                                 keke_order_class::set_order_status($order_id, $action);
                                 $exec_time = time() + $service_info['confirm_max'] * 24 * 3600;
                                 db_factory::execute(sprintf(" update %switkey_order set ys_end_time='%d' where order_id='%d'", TABLEPRE, $exec_time, $order_id));
                                 $v_arr = array($_lang['user_msg'] => $order_info['order_username'], $_lang['action'] => $_lang['haved_confirm_pay'], $_lang['order_id'] => $order_id, $_lang['order_link'] => $s_order_link);
                                 keke_shop_class::notify_user($order_info['seller_uid'], $order_info['seller_username'], "order_change", $_lang['goods_order_confirm_pay'], $v_arr);
                                 $objProm = keke_prom_class::get_instance();
                                 if ($objProm->is_meet_requirement("service", $order_info['obj_id'])) {
                                     $objProm->create_prom_event("service", $order_info['order_uid'], $order_info['obj_id'], $order_info['order_amount']);
                                 }
                                 if ($isApp) {
                                     app_class::response(array('ret' => 1010, 'orderinfo' => $order_info));
                                 } else {
                                     return true;
                                 }
                             } else {
                                 if ($isApp) {
                                     app_class::response(array('ret' => 1011, 'orderinfo' => $order_info));
                                 } else {
                                     return '订单付款失败,您的账户余额不足以支付该订单<br />点击这里<a href="index.php?do=pay&id=' . $order_info['order_id'] . '&type=order">去充值</a>';
                                 }
                             }
                             break;
                         case "close":
                             $res = keke_order_class::order_cancel_return($order_id);
                             if ($res) {
                                 keke_order_class::set_order_status($order_id, $action);
                                 $v_arr = array($_lang['user_msg'] => $order_info['order_username'], $_lang['action'] => $_lang['close_order_have'], $_lang['order_id'] => $order_id, $_lang['order_link'] => $s_order_link);
                                 keke_shop_class::notify_user($order_info['seller_uid'], $order_info['seller_username'], "order_change", $_lang['goods_order_close'], $v_arr);
                                 if ($isApp) {
                                     app_class::response(array('ret' => 1012, 'orderinfo' => $order_info));
                                 } else {
                                     kekezu::show_msg($_lang['system prompt'], "index.php?do=user&view=employer&op=shop&model_id=" . $service_info['model_id'], '1', $_lang['order_deal_complete_and_close'], 'alert_right');
                                 }
                             } else {
                                 if ($isApp) {
                                     app_class::response(array('ret' => 1013, 'orderinfo' => $order_info));
                                 } else {
                                     kekezu::show_msg($_lang['system prompt'], "index.php?do=user&view=employer&op=shop&model_id=" . $service_info['model_id'], '1', $_lang['order_deal_fail_and_link_kf'], 'alert_error');
                                 }
                             }
                             break;
                         case "confirm":
                             $res = keke_order_class::set_order_status($order_id, $action);
                             if ($res) {
                                 $model_info = $kekezu->_model_list[$order_info['model_id']];
                                 $profit = $service_info['profit_rate'] * $order_info['order_amount'] / 100;
                                 $data = array(':service_id' => $service_info['service_id'], ':title' => $service_info['title']);
                                 keke_finance_class::init_mem('sale_service', $data);
                                 keke_finance_class::cash_in($order_info['seller_uid'], $order_info['order_amount'] - $profit, 'sale_service', '', 'service', $order_info['obj_id'], $profit);
                                 keke_shop_class::plus_sale_num($order_info['obj_id'], $order_info['order_amount']);
                                 keke_user_mark_class::create_mark_log($model_info['model_code'], 2, $order_info['order_uid'], $order_info['seller_uid'], $order_id, $order_info['order_amount'] - $profit, $order_info['obj_id'], $order_info['order_username'], $order_info['seller_username']);
                                 keke_user_mark_class::create_mark_log($model_info['model_code'], 1, $order_info['seller_uid'], $order_info['order_uid'], $order_id, $order_info['order_amount'], $order_info['obj_id'], $order_info['seller_username'], $order_info['order_username']);
                                 keke_shop_class::plus_mark_num($order_info['obj_id']);
                                 $objProm = keke_prom_class::get_instance();
                                 if ($objProm->is_meet_requirement("service", $order_info[obj_id])) {
                                     $objProm->create_prom_event("service", $order_info['order_uid'], $order_info['obj_id'], $order_info['order_amount']);
                                 }
                                 $objProm->dispose_prom_event("service", $order_info['order_uid'], $order_info['obj_id']);
                                 if ($is_kf != null) {
                                     $v_arr = array($_lang['user_msg'] => $order_info['seller_username'], $_lang['action'] => '客服协助作品已交付完成', $_lang['order_id'] => $order_id, $_lang['order_link'] => $s_order_link);
                                     keke_shop_class::notify_user($order_info['order_uid'], $order_info['order_username'], "order_change", $_lang['work_order_complete'], $v_arr);
                                     $v_arr1 = array($_lang['user_msg'] => $order_info['order_username'], $_lang['action'] => '客服协助作品已交付完成', $_lang['order_id'] => $order_id, $_lang['order_link'] => $s_order_link);
                                     keke_shop_class::notify_user($order_info['seller_uid'], $order_info['seller_username'], "order_change", $_lang['work_order_complete'], $v_arr1);
                                     return true;
                                 } else {
                                     $v_arr = array($_lang['user_msg'] => $order_info['order_username'], $_lang['action'] => $_lang['buy_work_coplete'], $_lang['order_id'] => $order_id, $_lang['order_link'] => $s_order_link);
                                     keke_shop_class::notify_user($order_info['seller_uid'], $order_info['seller_username'], "order_change", $_lang['work_order_complete'], $v_arr);
                                     if ($isApp) {
                                         app_class::response(array('ret' => 1022, 'orderinfo' => $order_info));
                                     } else {
                                         return true;
                                     }
                                 }
                             } else {
                                 if ($isApp) {
                                     app_class::response(array('ret' => 1023, 'orderinfo' => $order_info));
                                 } else {
                                     kekezu::show_msg($_lang['system prompt'], "index.php?do=order&sid={$order_info['obj_id']}&orderId={$order_id}&steps=step3", '1', $_lang['order_deal_fail_and_link_kf'], 'alert_error');
                                 }
                             }
                             break;
                         case "arbitral":
                             $res = keke_order_class::set_order_status($order_id, $action);
                             if ($res) {
                                 if ($uid == $order_info['order_uid']) {
                                     $v_arr = array($_lang['user'] => $order_info['order_username'], $_lang['action'] => $_lang['buyer_start_arbitrate'], $_lang['order_id'] => $order_id, $_lang['order_link'] => $s_order_link);
                                     keke_shop_class::notify_user($order_id['seller_uid'], $order_info['seller_username'], "order_change", $_lang['sevice_order_arbitrate_submit'], $v_arr);
                                 } else {
                                     $v_arr = array($_lang['user_msg'] => $order_info['seller_username'], $_lang['action'] => $_lang['seller_start_arbitrate'], $_lang['order_id'] => $order_id, $_lang['order_link'] => $b_order_link);
                                     keke_shop_class::notify_user($order_info['order_uid'], $order_info['order_username'], "order_change", $_lang['work_order_submit'], $v_arr);
                                 }
                                 if ($isApp) {
                                     app_class::response(array('ret' => 1022, 'orderinfo' => $order_info));
                                 } else {
                                     return true;
                                 }
                             } else {
                                 if ($isApp) {
                                     app_class::response(array('ret' => 1023, 'orderinfo' => $order_info));
                                 } else {
                                     return $_lang['order_deal_fail_and_link_kf'];
                                 }
                             }
                             break;
                     }
                 }
             } else {
                 $res = keke_order_class::set_order_status($order_id, 'close');
                 keke_order_class::order_cancel_return($order_id);
                 $v_arr = array($_lang['user_msg'] => $_lang['system'], $_lang['action'] => $_lang['stop_your_order_and_your_cash_return'], $_lang['order_id'] => $order_id, $_lang['order_link'] => $b_order_link);
                 keke_shop_class::notify_user($order_info['order_uid'], $order_info['order_username'], "order_change", $_lang['goods_order_close'], $v_arr);
                 $v_arr = array($_lang['user_msg'] => $_lang['system'], $_lang['action'] => $_lang['stop_your_order_and_your_cash_return'], $_lang['order_id'] => $order_id, $_lang['order_link'] => $s_order_link);
                 keke_shop_class::notify_user($order_info['seller_uid'], $order_info['seller_username'], "order_change", $_lang['goods_order_close'], $v_arr);
                 if ($isApp) {
                     $res and app_class::response(array('ret' => 1006)) or app_class::response(array('ret' => 1007));
                 } else {
                     $res and kekezu::keke_show_msg('', $_lang['order_delete_success'], "", 'json') or kekezu::keke_show_msg('', $_lang['order_delete_fail'], "error", 'json');
                 }
             }
         } else {
             if ($isApp) {
                 app_class::response(array('ret' => 1024, 'orderinfo' => $order_info));
             } else {
                 kekezu::keke_show_msg('', $_lang['error_order_num_notice'], 'error', 'json');
             }
         }
     } else {
         if ($isApp) {
             app_class::response(array('ret' => 1025, 'orderinfo' => $order_info));
         } else {
             kekezu::keke_show_msg('', $_lang['no_exist_goods_order'], 'error', 'json');
         }
     }
 }
示例#17
0
 public static function create_service_order($service_info, $isApp = false, $serviceOrderInfo = array(), $step = '')
 {
     global $uid, $username, $_K;
     global $_lang;
     if ($uid == $service_info['uid']) {
         if ($isApp) {
             app_class::response(array('ret' => 1003));
         } else {
             return $_lang['seller_can_not_order_self'];
         }
     }
     $oder_obj = new Keke_witkey_order_class();
     $order_detail = new Keke_witkey_order_detail_class();
     switch ($service_info['model_id']) {
         case "6":
             $type = $_lang['work'];
             $service_cash = $service_info['price'];
             break;
         case "7":
             $type = $_lang['service'];
             $service_cash = $serviceOrderInfo['price'];
             break;
     }
     $order_name = $service_info['title'];
     $order_body = $_lang['buy_goods'] . "<a href=\"index.php?do=goods&id={$service_info['service_id']}\">" . $order_name . "</a>";
     if ($service_info['model_id'] == 6) {
         $detail_type = 'goods';
         $order_status = 'wait';
     } else {
         $detail_type = 'service';
         $order_status = 'seller_confirm';
     }
     $order_id = keke_order_class::create_order($service_info['model_id'], $service_info['uid'], $service_info['username'], $order_name, $service_cash, $order_body, $order_status, $service_info['leave_message']);
     if ($order_id) {
         if ($service_info['model_id'] == 7) {
             $serviceOrderInfo['order_id'] = $order_id;
             keke_order_class::createServiceOrder($serviceOrderInfo);
         }
         keke_order_class::create_order_detail($order_id, $order_name, 'service', intval($service_info[service_id]), $service_cash);
         $msg_obj = new keke_msg_class();
         $service_url = "<a href=\"" . $_K[siteurl] . "/index.php?do=goods&id=" . $service_info[service_id] . "\">" . $order_name . "</a>";
         $strLeaveMessage = $service_info['leave_message'];
         $order_url = "<a href=\"" . $_K[siteurl] . "/index.php?do=order&sid=" . $service_info['service_id'] . "&orderId=" . $order_id . "#userCenter\">#" . $order_id . "</a>";
         $s_notice = array($_lang['user_action'] => $username . $_lang['order_buy'], $_lang['service_name'] => $service_url, $_lang['service_type'] => $type, $_lang['buyer_leave_message'] => $strLeaveMessage, $_lang['order_link'] => $order_url);
         if ($service_info['model_id'] == '7') {
             unset($s_notice[$_lang['buyer_leave_message']]);
             $msgAction = 'service_order';
             $shopMx = '服务';
         } else {
             $msgAction = 'goods_order';
             $shopMx = '作品';
         }
         $contact = db_factory::get_one(sprintf(" select mobile,email from %switkey_space where uid='%d'", TABLEPRE, $service_info[uid]));
         if ($service_info['model_id'] != '6' && $step != 'step1') {
             $order_info = keke_order_class::get_order_info($order_id);
             $b_order_link = "<a href=\"" . $_K['siteurl'] . "/index.php?do=user&view=transaction&op=sold&intModelId=" . $order_info['model_id'] . "&order_id=" . $order_id . "\">" . $order_info['order_name'] . "</a>";
             $v_arr = array($_lang['user_msg'] => $order_info['seller_username'], '商品标题' => $order_info['order_name'], $_lang['order_link'] => $b_order_link, '商品模型名称' => $shopMx);
             $msg_obj->send_message($service_info['uid'], $service_info['username'], "order_create", $_lang['you_has_new'] . $type . $_lang['order'], $v_arr, $contact['email'], $contact['mobile']);
             $arrTaskInfo = db_factory::get_one("select * from " . TABLEPRE . "witkey_service where service_id=" . intval($service_info[service_id]));
             $feed_arr = array("feed_username" => array("content" => $arrTaskInfo['username'], "url" => "index.php?do=seller&id=" . $arrTaskInfo['uid']), "action" => array("content" => $_lang['buy'], "url" => ''), "event" => array("content" => $order_name, "url" => "index.php?do=goods&id={$service_info['service_id']}"));
             kekezu::save_feed($feed_arr, $uid, $username, 'buy_' . $detail_type, $service_info['service_id'], $service_url);
             $feed_arr = array("feed_username" => array("content" => $username, "url" => "index.php?do=seller&id=" . $uid), "action" => array("content" => $_lang['buy'], "url" => ''), "event" => array("content" => $order_name, "url" => "index.php?do=goods&id={$service_info['service_id']}"));
             kekezu::save_feed($feed_arr, $arrTaskInfo['uid'], $arrTaskInfo['username'], 'buy_' . $detail_type . '_bei', $service_info['service_id'], $service_url);
         }
         if ($isApp) {
             app_class::response(array('ret' => 0, 'orderid' => $order_id));
         } else {
             return $order_id;
         }
     } else {
         if ($isApp) {
             app_class::response(array('ret' => 1004));
         } else {
             return $_lang['order_produce_fail'];
         }
     }
 }
示例#18
0
         }
         $serviceOrderInfo = array();
         $serviceOrderInfo['uid'] = $gUid;
         $serviceOrderInfo['username'] = $gUsername;
         $serviceOrderInfo['service_id'] = 0;
         $serviceOrderInfo['title'] = kekezu::escape($title);
         $serviceOrderInfo['indus_pid'] = intval($indus_pid);
         $serviceOrderInfo['indus_id'] = intval($indus_id);
         $serviceOrderInfo['content'] = kekezu::escape($content);
         $serviceOrderInfo['file_ids'] = $file_ids;
         $serviceOrderInfo['price'] = floatval($price);
         $orderId = keke_order_class::create_order(7, $arrSellerInfo['uid'], $arrSellerInfo['username'], $serviceOrderInfo['title'], $serviceOrderInfo['price'], '雇佣服务:' . $serviceOrderInfo['title'], 'seller_confirm');
         if ($orderId) {
             $serviceOrderInfo['order_id'] = $orderId;
             keke_order_class::create_order_detail($orderId, $serviceOrderInfo['title'], 'gy', $serviceOrderInfo['service_id'], $serviceOrderInfo['price']);
             keke_order_class::createServiceOrder($serviceOrderInfo);
             $order_url = "<a href=\"" . $_K['siteurl'] . "/index.php?do=gy&id=" . $arrSellerInfo['uid'] . "&orderId=" . $orderId . "\">" . $title . "</a>";
             $v_arr = array('用户名' => $arrSellerInfo['username'], '用户' => $username, '雇佣订单链接' => $order_url, '网站名称' => $kekezu->_sys_config['website_name']);
             $msg_obj = new keke_msg_class();
             $msg_obj->send_message($arrSellerInfo['uid'], $arrSellerInfo['username'], 'gy_order_notice', '雇佣订单消息', $v_arr);
             $feed_arr = array("feed_username" => array("content" => $arrSellerInfo['username'], "url" => "index.php?do=seller&id=" . $arrSellerInfo['uid']), "action" => array("content" => '雇佣', "url" => ''), "event" => array("content" => $serviceOrderInfo['title'], "url" => ""));
             kekezu::save_feed($feed_arr, $gUid, $gUsername, 'gy', $id, '');
             $feed_arr = array("feed_username" => array("content" => $gUsername, "url" => "index.php?do=seller&id=" . $gUid), "action" => array("content" => '雇佣', "url" => ''), "event" => array("content" => $serviceOrderInfo['title'], "url" => ""));
             kekezu::save_feed($feed_arr, $arrSellerInfo['uid'], $arrSellerInfo['username'], 'gy_bei', $id, '');
             kekezu::show_msg('订单创建成功', $strUrl . "&step=step2&orderId=" . $orderId, 3, null, 'ok');
         } else {
             kekezu::show_msg('创建订单失败', $strUrl, 3, null, 'fail');
         }
     }
     break;
 case 'step2':
示例#19
0
 public function dispose_order($order_id, $trust_response = false)
 {
     global $kekezu, $uid, $username, $_K;
     global $_lang;
     $response = array();
     $task_config = $this->_task_config;
     $task_info = $this->_task_info;
     $url = $_K['siteurl'] . '/index.php?do=task&id=' . $this->_task_id;
     $task_status = $this->_task_status;
     $order_info = db_factory::get_one("select * from " . TABLEPRE . "witkey_order where order_id=" . intval($order_id));
     $order_amount = $order_info['order_amount'];
     if ($order_info['order_status'] == 'ok') {
         $task_status == 1 && ($notice = $_lang['task_pay_success_and_wait_admin_audit']);
         $task_status == 2 && ($notice = $_lang['task_pay_success_and_task_pub_success']);
         return pay_return_fac_class::struct_response($_lang['operate_notice'], $notice, $url, 'success');
     } else {
         $arrOrderDetail = keke_order_class::get_order_detail($order_id);
         foreach ($arrOrderDetail as $k => $v) {
             if ($v['obj_type'] == 'task' && $v['detail_type'] == null) {
                 $data = array(':model_name' => $this->_model_name, ':task_id' => $this->_task_id, ':task_title' => $this->_task_title);
                 keke_finance_class::init_mem('pub_task', $data);
                 $res = keke_finance_class::cash_out($task_info['uid'], $v['price'], 'pub_task', 0, 'task', $this->_task_id);
             }
             if ($v['obj_type'] == 'task' && $v['detail_type']) {
                 PayitemClass::createPayitemRecord($v['detail_type'], $v['num'], $v['obj_type'], $v['obj_id']);
             }
         }
         switch ($res == true) {
             case "1":
                 $objProm = keke_prom_class::get_instance();
                 if ($objProm->is_meet_requirement("pub_task", $this->_task_id)) {
                     $objProm->create_prom_event("pub_task", $this->_guid, $task_info['task_id'], $task_info['task_cash']);
                 }
                 db_factory::updatetable(TABLEPRE . "witkey_order", array("order_status" => "ok"), array("order_id" => "{$order_id}"));
                 keke_order_class::update_fina_order($res, $order_id);
                 $consume = kekezu::get_cash_consume($task_info['task_cash']);
                 db_factory::execute(sprintf(" update %switkey_task set cash_cost='%s',credit_cost='%s' where task_id='%d'", TABLEPRE, $consume['cash'], $consume['credit'], $this->_task_id));
                 if ($task_info['task_cash'] < $task_config['audit_cash'] && !$this->_trust_mode) {
                     $this->set_task_status(1);
                     return pay_return_fac_class::struct_response($_lang['operate_notice'], $_lang['task_pay_success_and_wait_admin_audit'], $url, 'alert_right');
                 } else {
                     $this->set_task_status(2);
                     $feed_arr = array("feed_username" => array("content" => $task_info['username'], "url" => "index.php?do=seller&id={$task_info['uid']}"), "action" => array("content" => $_lang['pub_task'], "url" => ""), "event" => array("content" => "{$task_info['task_title']}", "url" => "index.php?do=task&id={$task_info['task_id']}", "cash" => $task_info['task_cash_coverage'] ? $task_info['task_cash_coverage'] : $task_info['task_cash'], "model_id" => "{$this->_model_id}"));
                     kekezu::save_feed($feed_arr, $task_info['uid'], $task_info['username'], 'pub_task', $task_info['task_id']);
                     $status_arr = self::get_task_status();
                     $url = '<a href="' . $_K['siteurl'] . '/index.php?do=task&id=' . $task_info['task_id'] . '"  target="_blank">' . $task_info['task_title'] . '</a>';
                     $v = array('model_name' => $this->_model_name, 'task_id' => $task_info['task_id'], $_lang['task_title'] => $task_info['task_title'], $_lang['task_id'] => $task_info['task_id'], $_lang['task_link'] => $url, $_lang['task_status'] => $status_arr[2], '开始时间' => date('Y-m-d H:i:s', $task_info['start_time']), '投稿结束时间' => date('Y-m-d H:i:s', $task_info['sub_time']), '选稿结束时间' => date('Y-m-d H:i:s', $task_info['end_time']));
                     $this->notify_user("task_pub", '任务发布通知', $v, $notify_type = 1, $task_info['uid']);
                     return pay_return_fac_class::struct_response($_lang['operate_notice'], $_lang['task_pay_success_and_task_pub_success'], $url, 'alert_right');
                 }
                 break;
             case "0":
                 $pay_url = $_K['siteurl'] . "/index.php?do=pay&order_id={$order_id}";
                 return pay_return_fac_class::struct_response($_lang['operate_notice'], $_lang['task_pay_error_and_please_repay'], $pay_url, 'alert_error');
                 break;
         }
     }
 }
示例#20
0
 public static function dispose_order($orderId)
 {
     if (TOOL === TRUE) {
         $arrOrderDetail = keke_order_class::get_order_detail($orderId);
         $arrOrderInfo = keke_order_class::get_order_info($orderId);
         $floatCash = floatval($arrOrderInfo['order_amount']);
         foreach ($arrOrderDetail as $k => $v) {
             PayitemClass::createPayitemRecord($v['detail_type'], $v['num'], $v['obj_type'], $v['obj_id']);
         }
         keke_order_class::set_order_status($orderId, 'ok');
     }
 }