public function return_url() { require_once CSCMSPATH . "pay/yeepay/yeepayCommon.php"; $return = getCallBackValue($r0_Cmd, $r1_Code, $r2_TrxId, $r3_Amt, $r4_Cur, $r5_Pid, $r6_Order, $r7_Uid, $r8_MP, $r9_BType, $hmac); $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") { $out_trade_no = $this->input->get_post('r6_Order', true, true); $row = $this->CsdjDB->get_row('pay', '*', $out_trade_no, 'dingdan'); if ($row && $row->pid != 1) { //增加金钱 $this->db->query("update " . CS_SqlPrefix . "user set rmb=rmb+" . $row->rmb . " where id=" . $row->uid . ""); //改变状态 $this->db->query("update " . CS_SqlPrefix . "pay set pid=1 where id=" . $row->id . ""); //发送通知 $add['uida'] = $row->uid; $add['uidb'] = 0; $add['name'] = L('pay_11'); $add['neir'] = L('pay_17', array($row->rmb, $out_trade_no)); $add['addtime'] = time(); $this->CsdjDB->get_insert('msg', $add); } msg_url(L('pay_07') . $out_trade_no, spacelink('pay')); } elseif ($r9_BType == "2") { msg_url(L('pay_09'), spacelink('pay')); } } else { msg_url(L('pay_09'), spacelink('pay')); } } }
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(dirname(dirname(__FILE__))) . '/app.php'; require_once WWW_ROOT . '/order/yeepay/yeepayCommon.php'; $p1_MerId = $INI['yeepay']['mid']; $merchantKey = $INI['yeepay']['sec']; $return = getCallBackValue($r0_Cmd, $r1_Code, $r2_TrxId, $r3_Amt, $r4_Cur, $r5_Pid, $r6_Order, $r7_Uid, $r8_MP, $r9_BType, $hmac); $bRet = CheckHmac($r0_Cmd, $p1_MerId, $r1_Code, $r2_TrxId, $r3_Amt, $r4_Cur, $r5_Pid, $r6_Order, $r7_Uid, $r8_MP, $r9_BType, $hmac, $merchantKey); if ($bRet) { if ($r1_Code == "1") { list($_, $order_id, $city_id, $_) = explode('-', $r6_Order, 4); if ($r9_BType == "1") { /* charge */ if ($_ == 'charge') { @(list($_, $user_id, $create_time, $_) = explode('-', $r6_Order, 4)); $service = 'yeepay'; if (ZFlow::CreateFromCharge($r3_Amt, $user_id, $create_time, $service)) { Session::Set('notice', "在线充值{$r3_Amt}元成功!"); } redirect(WEB_ROOT . '/credit/index.php'); } /* end charge */ $currency = 'CNY'; $service = 'yeepay'; $bank = '易宝'; ZOrder::OnlineIt($order_id, $r6_Order, $r3_Amt, $currency, $service, $bank); redirect(WEB_ROOT . "/order/pay.php?id={$order_id}"); } else { if ($r9_BType == "2") { //如果需要应答机制则必须回写流,以success开头,大小写不敏感. /* charge */
/* 2011-2-18 */ require_once dirname(__FILE__) . '/./../../framwork/MooPHP.php'; require_once dirname(__FILE__) . '/./config.php'; require_once dirname(__FILE__) . '/./function.php'; require_once dirname(__FILE__) . '/./yeepaycommon.php'; # 解析返回参数. $return = getCallBackValue($r0_Cmd, $r1_Code, $r2_TrxId, $r3_Amt, $r4_Cur, $r5_Pid, $r6_Order, $r7_Uid, $r8_MP, $r9_BType, $hmac); $uid = substruid($r6_Order, 14); if (empty($uid)) { MooMessage('您的请求有误。', '../../index.php?n=payment'); } $payment = $payment_code['yeepay']; # 判断返回签名是否正确(True/False) $bRet = CheckHmac($payment['p1_MerId'], $r0_Cmd, $r1_Code, $r2_TrxId, $r3_Amt, $r4_Cur, $r5_Pid, $r6_Order, $r7_Uid, $r8_MP, $r9_BType, $hmac, $payment['merchantKey']); //$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") { //用户成功提示 $paytime = date("Y.m.d H:i:s"); $bank_type = urlencode('易宝支付'); $payurl = array('pay' => '1', 'out_trade_no' => $r6_Order, 'paytime' => $paytime, 'bank_type' => $bank_type, 'trade_state' => 0, 'get_img' => '05.gif', 'img' => $r8_MP, 'total_fee' => $r3_Amt, 'uid' => $uid); //会员ID $payurl = implode(',', $payurl); $payurl = $payurl . ',yeepay'; $jump = '../../index.php?n=payment&h=payreturnurl&payurl=' . $payurl; echo '<script language="JavaScript">self.location=\'' . $jump . '\';</script>';
$sErrorCode = trim($_REQUEST['sErrorCode']); $sTrxId = trim($_REQUEST['sTrxId']); $amount = trim($_REQUEST['amount']); $cur = trim($_REQUEST['cur']); $productId = trim($_REQUEST['productId']); $orderId = trim($_REQUEST['orderId']); $userId = trim($_REQUEST['userId']); $MP = trim($_REQUEST['MP']); $bType = trim($_REQUEST['bType']); $svrHmac = trim($_REQUEST['svrHmac']); */ #以下代码和变量不需要修改 #解析返回参数 $return = getCallBackValue($sCmd, $sErrorCode, $sTrxId, $amount, $cur, $productId, $orderId, $userId, $MP, $bType, $svrHmac); #判断返回签名是否正确(True/False) $bRet = CheckHmac($sCmd, $sErrorCode, $sTrxId, $orderId, $amount, $cur, $productId, $userId, $MP, $bType, $svrHmac); #以上代码和变量不需要修改 #校验码正确 if ($bRet) { if ($sErrorCode == '1') { #需要比较返回的金额与商家数据库中订单的金额是否相等,只有相等的情况下才认为是交易成功 #并且需要对返回的处理进行事务控制,进行记录的排它性处理,防止对同一条交易重复发货的情况发生 include_once $jieqiModules['pay']['path'] . '/class/paylog.php'; $paylog_handler = JieqiPaylogHandler::getInstance('JieqiPaylogHandler'); $orderid = intval($orderId); $paylog = $paylog_handler->get($orderid); if (is_object($paylog)) { $buyname = $paylog->getVar('buyname'); $buyid = $paylog->getVar('buyid'); $payflag = $paylog->getVar('payflag'); $egold = $paylog->getVar('egold');