Ejemplo n.º 1
0
 public function execute($request)
 {
     $view = new Sp_View();
     $request = Request::current();
     $order_sn = $request->c_order;
     $order_id = $request->c_orderid;
     $order_amount = $request->c_orderamount;
     $the_order = Sp_Shopping_Order::load($order_sn, 'odrcode');
     if (!$the_order->ID or $the_order->ID != $order_id) {
         $view->assign('error_message', "错误的订单编号");
         $view->out_404();
         return;
     }
     $TruePr = $the_order["TruePr"];
     $ComePr = $the_order["ComePr"];
     $BackPr = $the_order["BackPr"];
     $the_order['order_amount'] = round($TruePr - $ComePr + $BackPr, 2);
     $Payment = Sp_Payment::factory("alipay");
     $params = array('order_id' => $order_id, 'order_sn' => $order_sn, 'order_amount' => $the_order['order_amount']);
     $link = $Payment->prepare($params);
     echo $link;
 }
Ejemplo n.º 2
0
 /**
  * 支付完成后返回处理
  * 
  * @param array params
  * @return void
  */
 public function complete($params)
 {
     $view = new Sp_View();
     #	解析返回参数.
     $return = Sp_Payment_Yeepay_Common::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 = Sp_Payment_Yeepay_Common::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") {
             #	需要比较返回的金额与商家数据库中订单的金额是否相等,只有相等的情况下才认为是交易成功.
             #	并且需要对返回的处理进行事务控制,进行记录的排它性处理,在接收到支付结果通知后,判断是否进行过业务逻辑处理,不要重复进行业务逻辑处理,防止对同一条交易重复发货的情况发生.
             $user_id = $r8_MP;
             //用户id
             $sn = trim($r6_Order);
             //订单号
             $amount = floatval($r3_Amt);
             //金额
             $recharge_info = Sp_Trade_Recharge::getBySn($sn);
             if (floatval($recharge_info['amount']) == $amount and $recharge_info['user_id'] == $user_id) {
                 if ($r9_BType == "1") {
                     #交易成功 在线支付页面返回
                     $request = Request::current();
                     if ($request->isMobile()) {
                         Loader::redirect(SP_URL_WAP . 'moneyrecord.html');
                     } else {
                         Loader::redirect(SP_URL_USER . 'moneyrecord.html');
                     }
                     /*
                     						$ret = false;
                     						if($recharge_info['status'] < 1) {
                     							$param = array(
                     								'id' => $recharge_info['id'],
                     								'user_id' => $user_id,
                     								'sn' => $sn,
                     								'amount' => $amount,
                     								'bank_sn' => $_REQUEST['ro_BankOrderId'],
                     								'trd_sn' => $_REQUEST['r2_TrxId'],
                     								'remark' => json_encode($_REQUEST)
                     							);
                     							$ret = Sp_Trade_Tradeprocess::recharge($param);
                     						}
                     						if($ret) {//处理成功
                     							$user = Sp_Account_User::getUserBase($user_id); //用户信息
                     							$data = array(
                     								'user_id' => $user_id,
                     								'account' => $amount,
                     								'user_name' => $user->data["username"],
                     								'email' => $user->data['email'],
                     								'realname' => $user->data["username"],
                     								'phone' => $user->data['phone'],
                     							);
                     							Sp_Message::send('recharge', $data);//发送消息
                     							Loader::redirect(SP_URL_USER.'moneyrecord.html');
                     						}elseif($recharge_info['status'] < 1) {//失败
                     							echo '资金流处理失败!';
                     							$body = print_r($_REQUEST,true);
                     							Sp_Admin_Mail::send('*****@*****.**', '资金流处理失败!', $body);
                     						}else{
                     							$request = Request::current();
                     							if($request->isMobile()) {
                     								Loader::redirect(SP_URL_WAP.'moneyrecord.html');
                     							}else{
                     								Loader::redirect(SP_URL_USER.'moneyrecord.html');
                     							}
                     						}*/
                 } elseif ($r9_BType == "2") {
                     #如果需要应答机制则必须回写流,以success开头,大小写不敏感.
                     $ret = false;
                     if ($recharge_info['status'] == 1) {
                         echo "success";
                     } elseif ($recharge_info['status'] < 1) {
                         $param = array('id' => $recharge_info['id'], 'user_id' => $user_id, 'sn' => $sn, 'amount' => $amount, 'bank_sn' => $_REQUEST['ro_BankOrderId'], 'trd_sn' => $_REQUEST['r2_TrxId'], 'remark' => json_encode($_REQUEST));
                         $amount_num = Sp_Trade_Recharge::getUserRechargeReport('WHERE status = 1 AND user_id=' . $user_id);
                         $ret = Sp_Trade_Tradeprocess::recharge($param);
                         if ($ret) {
                             //处理成功
                             //首冲奖励
                             if ($amount_num == 0) {
                                 $active_send_info = array('uid' => $user_id, 'type' => 'first_recharge');
                                 $client_active = MQClient::factory('active');
                                 $client_active->send('activePrizeReset_new_register', $active_send_info);
                             }
                             $user = Sp_Account_User::getUserBase($user_id);
                             //用户信息
                             $data = array('user_id' => $user_id, 'account' => $amount, 'user_name' => $user->data["username"], 'email' => $user->data['email'], 'realname' => $user->data["username"], 'phone' => $user->data['phone']);
                             Sp_Message::send('recharge', $data);
                             //发送消息
                         } else {
                             echo '资金流处理失败!';
                             $body = print_r($_REQUEST, true);
                             Sp_Admin_Mail::send('*****@*****.**', '资金流处理失败!', $body);
                         }
                     }
                 }
             }
         }
     } else {
         $body = print_r($_REQUEST, true);
         Sp_Admin_Mail::send('*****@*****.**', '易宝支付失败(签名验证失败)', $body);
         $view->assign('error_message', "抱歉,您的支付没有成功,请重新支付,谢谢");
         $view->out_404();
         return;
     }
 }
Ejemplo n.º 3
0
<?php

include_once "init.php";
include_once LIB_ROOT . "Sp/View.php";
include_once LIB_ROOT . "Sp/Taobao/Goods.php";
include_once LIB_ROOT . "Sp/Taobao/Shop.php";
include_once LIB_ROOT . "Sp/Taobao/Taobaoke.php";
$sp_view = new Sp_View('utf-8');
$nick = isset($_GET['nick']) ? $_GET['nick'] : $sp_view->out_404(true);
//静态编码网址转码
if (Config::get('special.static') == '1') {
    $nick = htmlspecialchars(url_base64_decode($nick));
}
//$goods = Sp_Taobao_Shop::getCategoes($nick,0,1,10);
//print_r($goods);
//商铺信息
$shop_info = Sp_Taobao_Shop::getShopinfo($nick);
if (isset($shop_info['shop'])) {
    $info = Sp_Taobao_Taobaoke::getShopsConvert($shop_info['shop']['sid'], Config::get('taoke.pid_short'));
    $click_url = $info['taobaoke_shops']['taobaoke_shop']['click_url'];
    $shop_info['shop']['click_url'] = $click_url;
}
//商店商品分类信息
$goods = Sp_Taobao_Goods::getShopItems($nick, null, 1, 1);
//按分类产品数量倒序
$category = $goods['item_search']['item_categories']['item_category'];
$category = array_sort($category, 'count', 'desc');
//最多取8个分类的商品,并且每个分类下的产品数量要大于4
$step = count($category) < 8 ? count($category) : 8;
$category = array_slice($category, 0, $step);
$catids = "";
Ejemplo n.º 4
0
 /**
  * function description
  *
  * @param
  * @return void
  */
 public function execute($request)
 {
     $view = new Sp_View();
     $view->out_404();
 }
Ejemplo n.º 5
0
<?php

include_once "init.php";
include_once LIB_ROOT . "Sp/View.php";
include_once LIB_ROOT . "Sp/Taobao/Goods.php";
include_once LIB_ROOT . "Sp/Taobao/Shop.php";
include_once LIB_ROOT . "Sp/Taobao/Taobaoke.php";
$sp_view = new Sp_View('utf-8');
$cache_id = 'goods|' . md5(var_export($_GET, true));
if (!$sp_view->isCached('goods.html', $cache_id)) {
    $num_iid = isset($_GET['iid']) ? $_GET['iid'] : $sp_view->out_404(true);
    /*
    $categores = Sp_Taobao_Shop::getCategoes('康美健食品专营店');
    print_r($categores);
    die();
    */
    //取商品详情
    $goods_detail = Sp_Taobao_Goods::getItemDetail($num_iid);
    //淘宝客点击url
    $url = Sp_Taobao_Taobaoke::getItemConvert($num_iid, Config::get('taoke.pid_short'));
    $cid = $goods_detail["item"]['cid'];
    $props = $goods_detail["item"]['props'];
    //商品属性
    $props = Sp_Taobao_Goods::getItemPropValues($cid, $props);
    //商品分类信息
    $catgory = Sp_Taobao_Goods::getItemcats($cid);
    //当前分类的推荐商品
    $cat_goods = Sp_Taobao_Goods::getCategoryItems($cid, 40, Config::get('taoke.pid_short'));
    //从40个商品中随机取8个
    shuffle($cat_goods['taobaoke_items']['taobaoke_item']);
    $cat_goods['taobaoke_items']['taobaoke_item'] = array_slice($cat_goods['taobaoke_items']['taobaoke_item'], 0, 8);
Ejemplo n.º 6
0
 /**
  * 接收支付平台通知(同步)
  * 
  * @param array params
  * @return void
  */
 public function complete($params)
 {
     $view = new Sp_View();
     #	解析返回参数.
     $version = $params["version"];
     $charset = $params["charset"];
     $language = $params["language"];
     $signType = $params["signType"];
     $tranCode = $params["tranCode"];
     $merchantID = $params["merchantID"];
     $merOrderNum = $params["merOrderNum"];
     $tranAmt = $params["tranAmt"];
     $feeAmt = $params["feeAmt"];
     $frontMerUrl = $params["frontMerUrl"];
     $backgroundMerUrl = $params["backgroundMerUrl"];
     $tranDateTime = $params["tranDateTime"];
     $tranIP = $params["tranIP"];
     $respCode = $params["respCode"];
     $msgExt = $params["msgExt"];
     $orderId = $params["orderId"];
     $gopayOutOrderId = $params["gopayOutOrderId"];
     $bankCode = $params["bankCode"];
     $tranFinishTime = $params["tranFinishTime"];
     $merRemark1 = $params["merRemark1"];
     $merRemark2 = $params["merRemark2"];
     $signValue = $params["signValue"];
     #	判断返回签名是否正确(True/False)
     $bRet = Sp_Payment_Gopay_HttpClient::CheckHmac($version, $tranCode, $merchantID, $merOrderNum, $tranAmt, $feeAmt, $tranDateTime, $frontMerUrl, $backgroundMerUrl, $orderId, $gopayOutOrderId, $tranIP, $respCode, '', self::$verficationCode, $signValue);
     if ($bRet) {
         if ($respCode == '0000') {
             $sn = trim($merOrderNum);
             //订单号
             $amount = floatval($tranAmt);
             //金额
             $recharge_info = Sp_Trade_Recharge::getBySn($sn);
             if (floatval($recharge_info['amount']) == $amount) {
                 $ret = false;
                 $amount_num = 1;
                 if ($recharge_info['status'] == 1) {
                     $ret = true;
                 } elseif ($recharge_info['status'] < 1) {
                     $amount_num = Sp_Trade_Recharge::getUserRechargeReport('WHERE status = 1 AND user_id=' . $recharge_info['user_id']);
                     $param = array('id' => $recharge_info['id'], 'user_id' => $recharge_info['user_id'], 'sn' => $sn, 'amount' => $amount, 'bank_sn' => $_REQUEST['gopayOutOrderId'], 'trd_sn' => $_REQUEST['orderId'], 'remark' => json_encode($_REQUEST));
                     $ret = Sp_Trade_Tradeprocess::recharge($param);
                 }
                 if ($ret) {
                     //处理成功
                     //首冲奖励
                     if ($amount_num == 0) {
                         $active_send_info = array('uid' => $recharge_info['user_id'], 'type' => 'first_recharge');
                         $client_active = MQClient::factory('active');
                         $client_active->send('activePrizeReset_new_register', $active_send_info);
                     }
                     $user = Sp_Account_User::getUserBase($recharge_info['user_id']);
                     //用户信息
                     $data = array('user_id' => $recharge_info['user_id'], 'account' => $amount, 'user_name' => $user->data["username"], 'email' => $user->data['email'], 'realname' => $user->data["username"], 'phone' => $user->data['phone']);
                     Sp_Message::send('recharge', $data);
                     //发送消息
                     $request = Request::current();
                     if ($request->isMobile()) {
                         Loader::redirect(SP_URL_WAP . 'moneyrecord.html');
                     } else {
                         Loader::redirect(SP_URL_USER . 'moneyrecord.html');
                     }
                 } else {
                     echo 'RespCode=9999|JumpURL=';
                     $body = print_r($_REQUEST, true);
                     Sp_Admin_Mail::send('*****@*****.**', '国付宝支付失败(数据库操作失败)', $body);
                 }
             }
         } else {
             echo 'RespCode=9999|JumpURL=';
             $body = print_r($_REQUEST, true);
             Sp_Admin_Mail::send('*****@*****.**', '国付宝支付失败(国付宝操作失败)', $body);
         }
     } else {
         $body = print_r($_REQUEST, true);
         Sp_Admin_Mail::send('*****@*****.**', '国付宝支付失败(签名验证失败)', $body);
         $view->assign('error_message', "抱歉,您的支付没有成功,请重新支付,谢谢");
         $view->out_404();
         return;
     }
 }