Example #1
0
 public static function CreateFromCharge($money, $user_id, $time, $service = 'alipay')
 {
     global $option_service;
     if (!$money || !$user_id || !$time) {
         return 0;
     }
     $pay_id = "charge-{$user_id}-{$time}";
     $pay = Table::Fetch('pay', $pay_id);
     if ($pay) {
         return 0;
     }
     $order_id = ZOrder::CreateFromCharge($money, $user_id, $time, $service);
     if (!$order_id) {
         return 0;
     }
     //insert pay record
     $pay = array('id' => $pay_id, 'order_id' => $order_id, 'bank' => $option_service[$service], 'currency' => 'CNY', 'service' => $service, 'create_time' => $time);
     DB::Insert('pay', $pay);
     //end//
     //update user money;
     $user = Table::Fetch('user', $user_id);
     Table::UpdateCache('user', $user_id, array('money' => array("money + {$money}")));
     $u = array('user_id' => $user_id, 'admin_id' => 0, 'money' => $money, 'direction' => 'income', 'action' => 'charge', 'detail_id' => $pay_id, 'create_time' => $time);
     return DB::Insert('flow', $u);
 }
Example #2
0
$isLocked = $_REQUEST["isLocked"];
$feeAmt = $_REQUEST["feeAmt"];
$respCode = $_REQUEST["respCode"];
$VerficationCode = $INI['gopay']['code'];
$signValue = $_REQUEST["signValue"];
$orderId = preg_replace('/_/', '-', $merOrderNum);
$str = "tranCode=[{$tranCode}]merchantID=[{$merchantID}]merOrderNum=[{$merOrderNum}]tranAmt=[{$tranAmt}]ticketAmt=[{$ticketAmt}]tranDateTime=[{$tranDateTime}]currencyType=[{$currencyType}]merURL=[{$merURL}]customerEMail=[{$customerEMail}]authID=[{$authID}]orgOrderNum=[{$orgOrderNum}]orgtranDateTime=[{$orgtranDateTime}]orgtranAmt=[{$orgtranAmt}]orgTxnType=[{$orgTxnType}]orgTxnStat=[{$orgTxnStat}]msgExt=[{$msgExt}]virCardNo=[{$virCardNo}]virCardNoIn=[{$virCardNoIn}]tranIP=[{$tranIP}]isLocked=[{$isLocked}]feeAmt=[{$feeAmt}]respCode=[{$respCode}]VerficationCode=[{$VerficationCode}]";
$newSign = MD5($str);
@(list($_, $order_id, $city_id, $_) = explode('-', $orderId, 4));
if (Table::Fetch('pay', $orderId)) {
    die('SUCCESS');
}
if ($newSign == $signValue && $respCode == '0000') {
    /* charge */
    if ($_ == 'charge') {
        @(list($_, $user_id, $create_time, $_) = explode('-', $orderId, 4));
        ZFlow::CreateFromCharge($tranAmt, $user_id, $create_time, 'gopay', $tranCode);
        Session::Set('notice', "国付宝充值{$tranAmt}元成功!");
        redirect(WEB_ROOT . '/credit/index.php');
        die('success');
    }
    /* end charge */
    $currency = 'CNY';
    $service = 'gopay';
    $bank = '国付宝';
    ZOrder::OnlineIt($order_id, $orderId, $tranAmt, $currency, $service, $bank, $tranCode);
    //Session::Set('notice', "购买成功!");
    redirect(WEB_ROOT . "/order/pay.php?id={$order_id}");
    die('success');
}
include template('order_return_error');
Example #3
0
$payment_currency = $_POST['mc_currency'];
$txn_id = $_POST['txn_id'];
$receiver_email = $_POST['receiver_email'];
$payer_email = $_POST['payer_email'];
if (eregi("VERIFIED", $result)) {
    $out_trade_no = $item_number;
    $total_fee = $payment_amount;
    @(list($_, $order_id, $city_id, $_) = explode('-', $out_trade_no, 4));
    if ($_ == 'charge') {
        @(list($_, $user_id, $create_time, $_) = explode('-', $out_trade_no, 4));
        ZFlow::CreateFromCharge($total_fee, $user_id, $create_time, 'paypal');
    } else {
        $currency = $payment_currency;
        $service = 'paypal';
        $bank = 'PayPal';
        ZOrder::OnlineIt($order_id, $out_trade_no, $total_fee, $currency, $service, $bank);
    }
}
function fsockPost($url, $data)
{
    //Parse url
    $web = parse_url($url);
    //build post string
    foreach ($data as $i => $v) {
        $postdata .= $i . "=" . urlencode($v) . "&";
    }
    $postdata .= "cmd=_notify-validate";
    //Set the port number
    if ($web['scheme'] == "https") {
        $web['port'] = "443";
        $ssl = "ssl://";
Example #4
0
$v_moneytype = trim($_POST['v_moneytype']); //订单实际支付币种    
$remark1   = trim($_POST['remark1' ]);      //备注字段1
$remark2   = trim($_POST['remark2' ]);     //备注字段2
$v_md5str  = trim($_POST['v_md5str' ]);   //拼凑后的MD5校验值  

/* 重新计算md5的值 */
$text = "{$v_oid}{$v_pstatus}{$v_amount}{$v_moneytype}{$key}";
$md5string = strtoupper(md5($text));

/* 判断返回信息,如果支付成功,并且支付结果可信,则做进一步的处理 */
if ($v_md5str == $md5string) {
	list($_, $order_id, $city_id, $_) = explode('-', $v_oid, 4);
	if($v_pstatus=="20") {

		/* charge */
		if ( $_ == 'charge' ) {
			@list($_, $user_id, $create_time, $_) = explode('-', $v_oid, 4);
			ZFlow::CreateFromCharge($v_amount, $user_id, $create_time, 'chinabank');
			die('ok');
		}
		/* end charge */
		$currency = 'CNY';
		$service = 'chinabank';
		$bank = mb_convert_encoding($v_pmode,'UTF-8','GBK');
		ZOrder::OnlineIt($order_id, $v_oid, $v_amount, $currency, $service, $bank);
		die('ok');
	} 
}
die('error');
?>
Example #5
0
<?php
/**
 * 异步处理
 * @author abei<*****@*****.**>
 */
require_once(dirname(dirname(dirname(__FILE__))) . '/app.php');
import('qalipay');
$alipayNotify = new QAlipayNotify($INI['qalipay']);
$verify_result = $alipayNotify->verifyNotify();

if($verify_result) {
	//$notify_data = $alipayNotify->decrypt($_POST['notify_data']);
	$doc = new DOMDocument();
	$doc->loadXML($_POST['notify_data']);
	
	if( ! empty($doc->getElementsByTagName( "notify" )->item(0)->nodeValue) ) {
		//商户订单号
		$out_trade_no = $doc->getElementsByTagName( "out_trade_no" )->item(0)->nodeValue;
		//支付宝交易号
		$trade_no = $doc->getElementsByTagName( "trade_no" )->item(0)->nodeValue;
		//交易状态
		$trade_status = $doc->getElementsByTagName( "trade_status" )->item(0)->nodeValue;
		$total_fee = $doc->getElementsByTagName( "total_fee" )->item(0)->nodeValue;
		DB::Insert('alipay_log',array('value'=>$total_fee.$out_trade_no.$trade_no.$trade_status));	
		if($trade_status == 'TRADE_FINISHED') {
			@list($_, $order_id, $city_id, $_) = explode('-', $out_trade_no, 4);
			if (Table::Fetch('pay', $out_trade_no)) die('success');
			$currency = 'CNY';
			$service = 'alipay';
			$bank = '支付宝';
			$order = Table::Fetch('order',$order_id);
Example #6
0
    $order = Table::Fetch('order', $id);
    if ($order['state'] != 'unpay') {
        json('付款订单不能删除', 'alert');
    }
    /* card refund */
    if ($order['card_id']) {
        Table::UpdateCache('card', $order['card_id'], array('consume' => 'N', 'team_id' => 0, 'order_id' => 0));
    }
    Table::Delete('order', $order['id']);
    Session::Set('notice', "删除订单 {$order['id']} 成功");
    json(null, 'refresh');
} else {
    if ('ordercash' == $action) {
        need_auth('order');
        $order = Table::Fetch('order', $id);
        ZOrder::CashIt($order);
        $user = Table::Fetch('user', $order['user_id']);
        Session::Set('notice', "现金付款成功,购买用户:{$user['email']}");
        json(null, 'refresh');
    } else {
        if ('teamdetail' == $action) {
            $team = Table::Fetch('team', $id);
            $partner = Table::Fetch('partner', $team['partner_id']);
            $paycount = Table::Count('order', array('state' => 'pay', 'team_id' => $id));
            $buycount = Table::Count('order', array('state' => 'pay', 'team_id' => $id), 'quantity');
            $onlinepay = Table::Count('order', array('state' => 'pay', 'team_id' => $id), 'money');
            $creditpay = Table::Count('order', array('state' => 'pay', 'team_id' => $id), 'credit');
            $cardpay = Table::Count('order', array('state' => 'pay', 'team_id' => $id), 'card');
            $couponcount = Table::Count('coupon', array('team_id' => $id));
            $team['state'] = team_state($team);
            $city_id = abs(intval($team['city_id']));
            /* 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 */
                if ($_ == 'charge') {
                    @(list($_, $order_id, $create_time, $_) = explode('-', $r6_Order, 4));
                    $service = 'yeepay';
                    if (ZFlow::CreateFromCharge($r3_Amt, $order_id, $create_time, $service)) {
                        Session::Set('notice', "在线充值{$v_amount}元成功!");
                    }
                    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}");
                ob_end_clean();
                die('SUCCESS');
            }
        }
    }
}
die('ILLEGAL ORDER INFOMATION');
Example #8
0
$url_param_str = $_GET;



$orderseq = $url_param_str['ORDERSEQ'];
$uptranseq = $url_param_str['UPTRANSEQ'];
$orderamount = $url_param_str['ORDERAMOUNT'];
$retncode = $url_param_str['RETNCODE'];
$retninfo = $url_param_str['RETNINFO'];
$trandate = $url_param_str['TRANDATE'];
$sign = $url_param_str['SIGN'];

$str = "UPTRANSEQ=".$uptranseq."&MERCHANTID=".$mid."&ORDERSEQ=".$orderseq."&ORDERAMOUNT=".$orderamount."&RETNCODE=".$retncode."&RETNINFO=".$retninfo."&TRANDATE=".$trandate."&KEY=".$datkey;

$mac = md5($str);
if(strtoupper($mac) == $sign){
	
	list($_, $order_id, $_, $_) = explode('z', $orderseq, 4);
		
	$currency = 'CNY';
	$service = 'bestpay';
	$bank = '翼支付'; 
					
	//Order::OnlineIt($order_id, $orderseq, $orderamount, $currency, $service, $bank,$uptranseq);
	ZOrder::OnlineIt($order_id, $orderseq, $orderamount, $currency, $service, $bank,$uptranseq);
	Session::Set('notice', '恭喜您下单成功!');
	redirect("../order.php?id={$order_id}");		
}else{
	var_dump($url_param_str);	
}
Example #9
0
if ($signtype == "2") {
    $md5key = $INI['sdopay']['sec'];
    $mac2 = md5($signString . "|" . $md5key);
    $ok = strtoupper($mac) == strtoupper($mac2);
}
@(list($_, $order_id, $city_id, $_) = explode('-', $orderid, 4));
if (Table::Fetch('pay', $orderid)) {
    die('OK');
}
//echo $order_id;
//exit;
if ($_ == 'charge') {
    if ($ok == 1) {
        @(list($_, $user_id, $create_time, $_) = explode('-', $orderid, 4));
        ZFlow::CreateFromCharge($amount, $user_id, $create_time, 'sdopay', $serialno);
        die("OK");
        //必须输出且只能输出"OK"
    }
}
if ($ok == 1) {
    $currency = 'CNY';
    $service = 'sdopay';
    $bank = '盛付通';
    ZOrder::OnlineIt($order_id, $orderid, $amount, $currency, $service, $bank, $serialno);
    die('OK');
    //必须输出且只能输出"OK"
} elseif ($ok == 0) {
    die('bad');
} else {
    die('ugly, error checking signature');
}
Example #10
0
$sign = $return['SIGN'];



list($_, $order_id, $city_id, $_) = explode('z', $orderseq, 4);
if (Table::Fetch('pay', $orderseq)){
	redirect(WEB_ROOT . "/order/pay.php?id={$order_id}");
};

$mac = md5("UPTRANSEQ=".$uptranseq."&MERCHANTID=".$mid."&ORDERID=".$orderseq."&PAYMENT=".$orderamount."&RETNCODE=".$retncode."&RETNINFO=".$retninfo."&PAYDATE=".$trandate."&KEY=".$datkey);
if(strtoupper($mac) == $sign){
	
	if($retncode == '0000'){

		//	翼支付网关平台交易流水号
		$out_no = $return['UPTRANSEQ'];
		$currency = 'CNY';
		$service = 'bestpay';	
		$bank = '翼支付';	
		$orderamount = $orderamount/100;
		ZOrder::OnlineIt($order_id, $orderseq, $orderamount, $currency, $service, $bank,$out_no);
		redirect(WEB_ROOT . "/order/pay.php?id={$order_id}");
	}else{
		echo "error";
	}
}else{
	echo $mac;
	echo "<br/>";
	echo $sign;
}
?>
Example #11
0
//获取总价格
@(list($_, $order_id, $city_id, $_) = explode('-', $out_trade_no, 4));
if ($_ == 'charge') {
    if ($verify_result) {
        if ($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') {
            @(list($_, $user_id, $create_time, $_) = explode('-', $out_trade_no, 4));
            if (ZFlow::CreateFromCharge($total_fee, $user_id, $create_time, 'alipay')) {
                Session::Set('notice', "支付宝充值{$total_fee}元成功!");
            }
        }
    }
    redirect(WEB_ROOT . '/credit/index.php');
}
if ($verify_result) {
    if ($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') {
        $currency = 'CNY';
        $service = 'alipay';
        $bank = '支付宝';
        ZOrder::OnlineIt($order_id, $out_trade_no, $total_fee, $currency, $service, $bank);
        redirect(WEB_ROOT . "/order/pay.php?id={$order_id}");
    } else {
        if ($_GET['trade_status'] == 'WAIT_SELLER_SEND_GOODS') {
            $currency = 'CNY';
            $service = 'alipay';
            $bank = '支付宝';
            ZOrder::AlipayOnlineItState($order_id, $out_trade_no, $total_fee, $currency, 'waitgood');
            redirect(WEB_ROOT . "/order/pay.php?id={$order_id}");
        }
    }
}
redirect(WEB_ROOT . "/order/pay.php?id={$order_id}");
     $table->SetPk('id', $order_id);
     $table->pay_id = $transactionNo;
     $table->payed = $amount;
     $table->state = 'pay';
     $flag = $table->update(array('state', 'pay_id', 'payed'));
     if ($flag) {
         $table = new Table('pay');
         $table->id = $transactionNo;
         $table->order_id = $order_id;
         $table->money = $amount;
         $table->currency = 'AED';
         $table->bank = $cardType . '-gift';
         $table->service = 'migs';
         $table->create_time = time();
         $table->insert(array('id', 'order_id', 'money', 'currency', 'service', 'create_time', 'bank'));
         ZOrder::BuyGift($order);
     }
     Utility::Redirect(WEB_ROOT . "/gift_cards/giftpay.php?id={$order_id}");
 } else {
     $order = Table::Fetch('order', $merchTxnRef);
     if ($order['state'] == 'unpay') {
         //1
         $table = new Table('order');
         $table->SetPk('id', $merchTxnRef);
         $table->pay_id = $transactionNo;
         $table->state = 'pay';
         $table->money = $amount;
         $flag = $table->update(array('state', 'pay_id', 'money'));
         if ($flag) {
             $table = new Table('pay');
             $table->id = $transactionNo;