/** * 获取代码 */ function GetCode($order) { require_once DEDEINC . '/shopcar.class.php'; $cart = new MemberShops(); $cart->clearItem(); $cart->MakeOrders(); $button = "您可以 <a href='/'>返回首页</a> 或去 <a href='../member/shops_products.php?oid=" . $order . "'>查看订单</a>"; return $button; }
/** * 提交函数 */ function GetCode($order, $payment) { require_once DEDEINC . '/shopcar.class.php'; $cart = new MemberShops(); $cart->clearItem(); $cart->MakeOrders(); if ($payment == "member") { $button = "您可以 <a href='/'>返回首页</a> 或去 <a href='/member/operation.php'>会员中心</a>"; } else { $button = "您可以 <a href='/'>返回首页</a> 或去 <a href='{$this->orderurl}?oid=" . $order . "'>查看订单</a>"; } return $button; }
/** * 生成支付代码 * @param array $order 订单信息 * @param array $payment 支付方式信息 */ function GetCode($order, $payment) { global $cfg_basehost, $cfg_cmspath, $cfg_soft_lang; $charset = $cfg_soft_lang; //对于二级目录的处理 if (!empty($cfg_cmspath)) { $cfg_basehost = $cfg_basehost . '/' . $cfg_cmspath; } $real_method = $payment['alipay_pay_method']; switch ($real_method) { case '0': $service = 'trade_create_by_buyer'; break; case '1': $service = 'create_partner_trade_by_buyer'; break; case '2': $service = 'create_direct_pay_by_user'; break; } $agent = 'C4335994340215837114'; $parameter = array('agent' => $agent, 'service' => $service, 'partner' => $payment['alipay_partner'], '_input_charset' => $charset, 'notify_url' => $cfg_basehost . $this->return_url . "&code=" . $payment['code'], 'return_url' => $cfg_basehost . $this->return_url . "&code=" . $payment['code'], 'subject' => "支付订单号:" . $order['out_trade_no'], 'out_trade_no' => $order['out_trade_no'], 'price' => $order['price'], 'quantity' => 1, 'payment_type' => 1, 'logistics_type' => 'EXPRESS', 'logistics_fee' => 0, 'logistics_payment' => 'BUYER_PAY_AFTER_RECEIVE', 'seller_email' => $payment['alipay_account']); ksort($parameter); reset($parameter); $param = ''; $sign = ''; foreach ($parameter as $key => $val) { $param .= "{$key}=" . urlencode($val) . "&"; $sign .= "{$key}={$val}&"; } $param = substr($param, 0, -1); $sign = substr($sign, 0, -1) . $payment['alipay_key']; $button = '<div style="text-align:center"><input type="button" onclick="window.open(\'https://www.alipay.com/cooperate/gateway.do?' . $param . '&sign=' . md5($sign) . '&sign_type=MD5\')" value="立即使用alipay支付宝支付"/></div>'; /* 清空购物车 */ require_once DEDEINC . '/shopcar.class.php'; $cart = new MemberShops(); $cart->clearItem(); $cart->MakeOrders(); return $button; }
<?php require_once dirname(__FILE__) . "/../../../include/common.inc.php"; require_once DEDEINC . '/shopcar.class.php'; require_once DEDEDATA . '/sys_pay.cache.php'; require_once DEDEINC . '/memberlogin.class.php'; include_once dirname(__FILE__) . '/yeepay_config.php'; $cfg_ml = new MemberLogin(); $cfg_ml->PutLoginInfo($cfg_ml->M_ID); $cart = new MemberShops(); $cart->MakeOrders(); # 只有支付成功时易宝支付才会通知商户. ##支付成功回调有两次,都会通知到在线支付请求参数中的p8_Url上:浏览器重定向;服务器点对点通讯. # 解析返回参数. $return = getCallBackValue($r0_Cmd, $r1_Code, $r2_TrxId, $r3_Amt, $r4_Cur, $r5_Pid, $r6_Order, $r7_Uid, $r8_MP, $r9_BType, $hmac); # 判断返回签名是否正确(True/False) $bRet = CheckHmac($r0_Cmd, $r1_Code, $r2_TrxId, $r3_Amt, $r4_Cur, $r5_Pid, $r6_Order, $r7_Uid, $r8_MP, $r9_BType, $hmac); # 以上代码和变量不需要修改. # 校验码正确. if ($bRet) { if ($r1_Code == "1") { # 需要比较返回的金额与商家数据库中订单的金额是否相等,只有相等的情况下才认为是交易成功. # 并且需要对返回的处理进行事务控制,进行记录的排它性处理,防止对同一条交易重复发货的情况发生. if ($r9_BType == "1") { success_db($r6_Order); } elseif ($r9_BType == "2") { #如果需要应答机制则必须回写流,以success开头,大小写不敏感. echo "success"; success_db($r6_Order); } elseif ($r9_BType == "3") { success_db($r6_Order);
<?php require_once dirname(__FILE__) . "/../include/common.inc.php"; require_once DEDEINC . '/shopcar.class.php'; $cart = new MemberShops(); $do = isset($do) ? trim($do) : 'add'; if ($do == 'add') { /* function addItem(); add a product to car */ $buynum = isset($buynum) && is_numeric($buynum) ? $buynum : 1; $id = intval($id); $buynum = $buynum < 1 ? 1 : $buynum; $rs = $dsql->GetOne("SELECT id,channel,title FROM #@__archives WHERE id='{$id}'"); if (!is_array($rs)) { ShowMsg("该商品已不存在!", "-1"); exit; } $cts = GetChannelTable($rs['channel']); $rows = $dsql->GetOne("SELECT aid as id,trueprice as price,units FROM `{$cts['addtable']}` WHERE aid='{$id}'"); if (!is_array($rows)) { ShowMsg("该商品已不存在!", "-1"); exit; } $rows['buynum'] = $buynum; $rows['title'] = $rs['title']; $cart->addItem($id, $rows); ShowMsg("已添加加到购物车,<a href='car.php'>查看购物车</a>", "car.php"); exit; } elseif ($do == 'del') { /*
<?php //显示购物车的商品 require_once dirname(__FILE__) . "/../include/common.inc.php"; define('_PLUS_TPL_', DEDEROOT . '/templets/plus'); require_once DEDEINC . '/dedetemplate.class.php'; require_once DEDEINC . '/shopcar.class.php'; require_once DEDEINC . '/memberlogin.class.php'; $cart = new MemberShops(); if (isset($dopost) && $dopost == 'makeid') { AjaxHead(); $cart->MakeOrders(); echo $cart->OrdersId; exit; } $cfg_ml = new MemberLogin(); //获得购物车内商品,返回数组 $Items = $cart->getItems(); if ($cart->cartCount() < 1) { ShowMsg("购物车中不存在任何商品!", "javascript:window.close();", false, 5000); exit; } @sort($Items); $carts = array('orders_id' => $cart->OrdersId, 'cart_count' => $cart->cartCount(), 'price_count' => $cart->priceCount()); $dtp = new DedeTemplate(); $dtp->Assign('carts', $carts); $dtp->LoadTemplate(_PLUS_TPL_ . '/car.htm'); $dtp->Display(); exit;
$payment = 'none'; if (isset($pd_encode) && isset($pd_verify) && md5("payment" . $pd_encode . $cfg_cookie_encode) == $pd_verify) { parse_str(mchStrCode($pd_encode, 'DECODE'), $mch_Post); $payment = 'ready'; foreach ($mch_Post as $k => $v) { ${$k} = $v; } } $pr_encode = ''; foreach ($_REQUEST as $key => $val) { $pr_encode .= $pr_encode ? "&{$key}={$val}" : "{$key}={$val}"; } $pr_encode = str_replace('=', '', mchStrCode($pr_encode)); $pr_verify = md5("payment" . $pr_encode . $cfg_cookie_encode); $cfg_ml = new MemberLogin(); $cart = new MemberShops(); //获得购物车内商品,返回数组 $Items = $cart->getItems(); if (empty($Items)) { ShowMsg("抱歉,请不要重复提交!", "javascript:;"); exit; } $OrdersId = $cart->OrdersId; //本次记录的订单号 $CartCount = $cart->cartCount(); //商品总数 $priceCount = $cart->priceCount(); //该订单总价格 /* function PostOrdersForm(); //填写订单信息 */
//更新用户商品统计 $countOrders = $dsql->GetOne("SELECT SUM(cartcount) AS nums FROM #@__shops_orders WHERE userid='" . $cfg_ml->M_ID . "'"); $dsql->ExecuteNoneQuery("UPDATE #@__member_tj SET `shop`='" . $countOrders['nums'] . "' WHERE mid='" . $cfg_ml->M_ID . "'"); $priceCount = sprintf("%01.2f", $row['priceCount']); if (!isset($online_payment)) { $payment_list = array(); foreach ($payment_select as $k => $val) { $temp_arr['name'] = $cfg_pay_info['name'][$k]; $temp_arr['logo'] = $cfg_cmspath . '/member/images/pay/' . $cfg_pay_info['logo'][$k]; $temp_arr['des'] = $cfg_pay_info['des'][$k]; $temp_arr['value'] = $val; $temp_arr['exp'] = sprintf("%01.2f", $priceCount * $payment_exp[$k]); $payment_list[] = $temp_arr; } $dtp = new DedeTemplate(); $dtp->Assign('carts', $row); $dtp->LoadTemplate(_PLUS_TPL_ . '/shops_buyaction.htm'); $dtp->Display(); exit; } else { if (!in_array($online_payment, $payment_select)) { ShowMsg("支付接口无效,或没开启!", 'javascript:;'); exit; } $cart = new MemberShops(); //清空购物车 $cart->clearItem(); $cart->MakeOrders(); require_once DEDEROOT . '/plus/paycenter/' . $online_payment . '/config_pay_' . $online_payment . '.php'; exit; }
/** * 生成支付代码 * @param array $order 订单信息 * @param array $payment 支付方式信息 */ function GetCode($order, $payment) { global $cfg_basehost, $cfg_cmspath; //对于二级目录的处理 if (!empty($cfg_cmspath)) { $cfg_basehost = $cfg_basehost . '/' . $cfg_cmspath; } # 商家设置用户购买商品的支付信息. ##易宝支付平台统一使用GBK/GB2312编码方式,参数如用到中文,请注意转码 # 商户订单号,选填. ##若不为"",提交的订单号必须在自身账户交易中唯一;为""时,易宝支付会自动生成随机的商户订单号. $p2_Order = trim($order['out_trade_no']); # 支付金额,必填. ##单位:元,精确到分. $p3_Amt = $order['price']; # 交易币种,固定值"CNY". $p4_Cur = "CNY"; # 商品名称 ##用于支付时显示在易宝支付网关左侧的订单产品信息. $p5_Pid = trim($order['out_trade_no']); # 商品种类 $p6_Pcat = 'cart'; # 商品描述 $p7_Pdesc = ''; # 商户接收支付成功数据的地址,支付成功后易宝支付会向该地址发送两次成功通知. //$p8_Url = $cfg_basehost."/plus/carbuyaction.php?dopost=return&code=".$payment['code']; $p8_Url = $cfg_basehost . $this->return_url . '&code=' . $payment['code']; # 商户扩展信息 ##商户可以任意填写1K 的字符串,支付成功时将原样返回. $pa_MP = 'member'; # 应答机制 ##为"1": 需要应答机制;为"0": 不需要应答机制. $pr_NeedResponse = 1; # 银行编码 ##默认为"",到易宝支付网关.若不需显示易宝支付的页面,直接跳转到各银行、神州行支付、骏网一卡通等支付页面,该字段可依照附录:银行列表设置参数值. $pd_FrpId = ''; #调用签名函数生成签名串 $hmac = $this->getReqHmacString($payment['yp_account'], $payment['yp_key'], $p2_Order, $p3_Amt, $p4_Cur, $p5_Pid, $p6_Pcat, $p7_Pdesc, $p8_Url, $pa_MP, $pd_FrpId, $pr_NeedResponse); $button = '<form target="_blank" method="post" action="' . $this->reqURL_onLine . '"> <input type="hidden" value="' . $this->p0_Cmd . '" name="p0_Cmd"> <input type="hidden" value="' . $payment['yp_account'] . '" name="p1_MerId"> <input type="hidden" value="' . $p2_Order . '" name="p2_Order"> <input type="hidden" value="' . $p3_Amt . '" name="p3_Amt"> <input type="hidden" value="' . $p4_Cur . '" name="p4_Cur"> <input type="hidden" value="' . $p5_Pid . '" name="p5_Pid"> <input type="hidden" value="' . $p6_Pcat . '" name="p6_Pcat"> <input type="hidden" value="' . $p7_Pdesc . '" name="p7_Pdesc"> <input type="hidden" value="' . $p8_Url . '" name="p8_Url"> <input type="hidden" value="' . $this->p9_SAF . '" name="p9_SAF"> <input type="hidden" value="' . $pa_MP . '" name="pa_MP"> <input type="hidden" value="' . $pd_FrpId . '" name="pd_FrpId"> <input type="hidden" value="' . $pr_NeedResponse . '" name="pr_NeedResponse" > <input type="hidden" value="' . $hmac . '" name="hmac"> <input type="submit" value="立即使用YeePay易宝支付"></form>'; /* 清空购物车 */ require_once DEDEINC . '/shopcar.class.php'; $cart = new MemberShops(); $cart->clearItem(); $cart->MakeOrders(); return $button; }