0 ) ? (int)$num: 1 ;
//展示页面
$show_url = $referer;
//获取商品信息
require_once 'cls.info.php';
//-----------------------------------------------------------------------
//实例化一个商品
//-----------------------------------------------------------------------
$pro = new ws_alipay_product();
$proInfo = $pro->get_info( $proid );
//############################################################################
//商品剩余数量重写
if( $proInfo['autosend'] ){
$autosepori = $autosep = trim( $proInfo['autosep'] );
$autosep = ws_alipay_preg_pre( $autosep );
if( $autosep == '' ){ $autosep='\n'; }
$arr_autosrc = preg_split( "@$autosep@", $proInfo['autosrc'] );
$arr_autosrc = ws_alipay_filter_empty( $arr_autosrc );
$proInfo['num'] = count( $arr_autosrc );
$pro->set( 'num', $proInfo['num'] );
}
//############################################################################
//余量判断
$notify_email = ws_alipay_get_setting( 'notify_email' );
$admin_url = get_option('siteurl') . '/wp-admin/options-general.php?page=ws_alipay' ;
if( (int)$proInfo['num'] < 2){
if( ws_alipay_get_setting( 'pro_lack_notify' ) ){
wp_mail( $notify_email , '商品余量不足,请及时补充',
"商品ID:$proid
商品名:$proInfo[name]
管理地址:$admin_url");
}
}
$proInfo['num'] = intval($proInfo['num']);
if( $proInfo['num'] < $num){
$cnum = (int)$proInfo['num'];
die(ws_alipay_show_tip( 'PRO_EMPTY' ));
}
//促销价格重载
if( $proInfo['promote'] == 1 &&
$proInfo['probdate'] < date( 'Ymd' ) &&
date( 'Ymd' ) < $proInfo['proedate'] &&
$proInfo['discountb'] == 1 )
{
if( ($proInfo['protime'] == 1 &&
$proInfo['probtime'] < date( 'His' ) &&
date( 'His' ) < $proInfo['proetime'] ) ||
$proInfo['protime'] == 0)
{
$proInfo['price'] *= $proInfo['discount'];
$proInfo['price'] = round( $proInfo['price'], 2 );
}
}
//运费价格重载
$type = $proInfo['protype'];
if( in_array( $type, array('ADP','LINK') ) )
$showMultiPrice = true;
else
$showMultiPrice = false;
if( $showMultiPrice ){
$units = preg_split( '@-@',$_REQUEST['unit']);
$unit = $units[0];
$proInfo['price'] = $proInfo[$unit];
}
//商品总费用,不含运费(商品的最终单价确定,数量确定,算出商品总费用)
$proInfo['profee'] = $proInfo['price'] * $num;
//加载运费
if( $proInfo['spfre'] == 0 ){
$proInfo['freight'] = 0.00;
}
//交易总费用(商品的总费用确定,运费确定)
$proInfo['ordfee'] = $proInfo['profee'] + $proInfo['freight'];
$subject = ws_alipay_esc_quotes($proInfo['name']) ;
$body = ws_alipay_esc_quotes($proInfo['description']) ;
//$price = ws_alipay_esc_quotes($proInfo['price']) ;
//商品的最终单价为:$proInfo['price']
//商品的总费用为(不含运费,总数量):$proInfo['profee']
//商品的运费为:$proInfo['freight']
//交易的总费用为:$proInfo['ordfee']
//交易数量(需为1):$proInfo['ordnum']
$proInfo['ordnum'] = 1;
//更新订单数据库
$arr_insert = array(
'proid' => $proid,
'ordname' => $ordname,
'emailsend' => '0',
'postcode' => $postcode,
'aliacc' => $aliacc,
'otime' => $otime,
'status' => '0',
'series' => $out_trade_no,
'buynum' => $num,//购买的数量
'address' => $addr,
'email' => $email,
'phone' => $tel,
'remarks' => $extra,
'message' => $msg,
'referer' => $referer,
'paygate' => $_REQUEST['paygate'],
'payprice' => $proInfo['price'],//成交单价,打折会有影响
'freight' => $proInfo['freight'],//运费
'profee' => $proInfo['profee'],//商品除运费外的总费用
'ordfee' => $proInfo['ordfee'],//交易总金额
'platTradeNo' => '',
);
$arr_insert = apply_filters('ws_alipay_insertorder',$arr_insert );
$ord = new ws_alipay_order();
$ordid = $ord->insert($arr_insert);
//特殊商品的额外处理
if( $proInfo['protype'] == 'ADP' ){
$timeLong = ws_alipay_unitToDay( $_REQUEST['num'], $units[0] ) * 24 * 3600 ;
$extraInfo = array(
'ordtype' => 'ADP',
'imgSrc' => $_REQUEST['imgSrc'],
'imgLink' => $_REQUEST['imgLink'],
'imgMd5' => md5(file_get_contents($_REQUEST['imgSrc'])),
'startTime' => current_time('timestamp'),
'endTime' => current_time('timestamp') + $timeLong,
'timeLong' => $timeLong );
$ord->set('', '', $extraInfo);
}
if( $proInfo['protype'] == 'LINK' ){
$timeLong = ws_alipay_unitToDay( $_REQUEST['num'], $units[0] ) * 24 * 3600 ;
$extraInfo = array(
'ordtype' => 'LINK',
'linkName' => $_REQUEST['linkName'],
'linkUrl' => $_REQUEST['linkUrl'],
'linkDesc' => $_REQUEST['linkDesc'],
'startTime' => current_time('timestamp'),
'endTime' => current_time('timestamp') + $timeLong,
'timeLong' => $timeLong );
$ord->set('', '', $extraInfo);
}
/////////////////////////////////////////////////////////////////////////////////////
//-----------------------------------------------------------------------
//实例化一个订单
//-----------------------------------------------------------------------
$order = new ws_alipay_order();
$orderInfo = $order->get_info($ordid);
$ws_alipay_mail = new WS_Alipay_Mail( $proInfo, $orderInfo );
/////////////////////////////////////////////////////////////////////////////////////
////订单邮件通知
$buyer_ord_notify = ws_alipay_get_setting( 'buyer_ord_notify' );
$seller_ord_notify = ws_alipay_get_setting( 'seller_ord_notify' );
if( $buyer_ord_notify ){
//wp_mail( $email , '交易状态已改变为:等待付款',
// "亲爱的顾客,感谢您的购买,请及时完成支付
订单号为:$out_trade_no");
$ws_alipay_mail->send($email ,'ORDER');
}
if( $seller_ord_notify ){
//wp_mail( $notify_email , '有一笔新的订单等待付款', "订单号为:$out_trade_no");
$ws_alipay_mail->send( $notify_email ,'ORDER', true );
}
///////////////////////////////参数预定义////////////////////////////////////////
//商户额外参数 extra_common_param
$extra_common_param = "";
/**************************请求参数**************************/
//参数body(商品描述)、subject(商品名称)、extra_common_param(公用回传参数)不能包含特殊字符(如:#、%、&、+)、敏感词汇,也不能使用外国文字(旺旺不支持的外文,如:韩文、泰语、藏文、蒙古文、阿拉伯语)
//必填参数//
//请与贵网站订单系统中的唯一订单号匹配
$out_trade_no = $out_trade_no;
//订单名称,显示在支付宝收银台里的"商品名称"里,显示在支付宝的交易管理的"商品名称"的列表里。
$subject = $subject;//$_POST['subject'];
//订单描述、订单详细、订单备注,显示在支付宝收银台里的"商品描述"里
$body = $body;//$_POST['body'];
//订单总金额,显示在支付宝收银台里的"应付总额"里
//$total_fee = $total_fee;//$_POST['total_fee'];
//扩展功能参数——默认支付方式//
//默认支付方式,取值见"即时到帐接口"技术文档中的请求参数列表
$paymethod = '';
//默认网银代号,代号列表见"即时到帐接口"技术文档"附录"→"银行列表"
if(isset($_REQUEST['bankType']) &&
isset($_REQUEST['paygate']) &&
$_REQUEST['paygate'] == 'UNION'){
$defaultbank = $_REQUEST['bankType'];
}else{
$defaultbank = '';
}
//扩展功能参数——防钓鱼//
//防钓鱼时间戳
$anti_phishing_key = '';
//获取客户端的IP地址,建议:编写获取客户端IP地址的程序
$exter_invoke_ip = '';
//注意:
//1.请慎重选择是否开启防钓鱼功能
//2.exter_invoke_ip、anti_phishing_key一旦被使用过,那么它们就会成为必填参数
//3.开启防钓鱼功能后,服务器、本机电脑必须支持SSL,请配置好该环境。
//示例:
//$exter_invoke_ip = '202.1.1.1';
//$ali_service_timestamp = new AlipayService($aliapy_config);
//$anti_phishing_key = $ali_service_timestamp->query_timestamp();//获取防钓鱼时间戳函数
//扩展功能参数——其他//
//商品展示地址,要用 http://格式的完整路径,不允许加?id=123这类自定义参数
$show_url = $show_url;
//自定义参数,可存放任何内容(除=、&等特殊字符外),不会显示在页面上
//NOT ARRAY ,SRING ###MUST FILTER IT###
$extra_common_param = $extra_common_param;
//扩展功能参数——分润(若要使用,请按照注释要求的格式赋值)
$royalty_type = ""; //提成类型,该值为固定值:10,不需要修改
$royalty_parameters = "";
//注意:
//提成信息集,与需要结合商户网站自身情况动态获取每笔交易的各分润收款账号、各分润金额、各分润说明。最多只能设置10条
//各分润金额的总和须小于等于total_fee
//提成信息集格式为:收款方Email_1^金额1^备注1|收款方Email_2^金额2^备注2
//示例:
//royalty_type = "10"
//royalty_parameters= "111@126.com^0.01^分润备注一|222@126.com^0.01^分润备注二"
/////////////////////////////参数接口规范化/////////////////////////////////////////
$ws_payto_para = array(
//
'' => '',
##商品信息##//############################################################################
//商品名称
'name' => $subject,
//商品价格
'price' => $proInfo['ordfee'],
//购买数量
'num' => 1,
//商品描述
'desc' => $body,
//展示页面
'showurl' => $show_url,
##订单信息##//############################################################################
//订单号
'ordno' => $out_trade_no,
//日期
'date' => $odate,
//时间
'time' => $otimeo,
##系统参数//############################################################################
//字符编码
'charset' => WS_ALIPAY_CHARSET,
//客户IP地址
'ip' => $_SERVER['REMOTE_ADDR'],
//其他
'paymethod' => $paymethod,
'bank' => $defaultbank,
'extra' => $extra_common_param,
'royalty_type' => $royalty_type,
'royalty_parameters' => $royalty_parameters,
'anti_phishing_key' => $anti_phishing_key,
'exter_invoke_ip' => $exter_invoke_ip,
//tenpay
//序列号
'strReq' => $strReq,
);
include_once 'tpl.payto.php' ;
$gate = strtolower( $_REQUEST['paygate'] );
if( $gate == 'union' )
$gate = 'tenpay';
$file = "api_$gate" . DIRECTORY_SEPARATOR . "inc.{$gate}to.php";
if( file_exists( $file )){
include_once $file;
}else{
echo ws_alipay_show_tip( 'UNSUPPORTED_GATE' );
}
//die(dirname(__FILE__) . "\inc.{$gate}to.php");
//include_once( 'api_alipay' . DIRECTORY_SEPARATOR . 'inc.alipayto.php' );
//include_once( 'api_tenpay' . DIRECTORY_SEPARATOR . 'inc.tenpayto.php' );
//include_once( 'api_paypal' . DIRECTORY_SEPARATOR . 'inc.paypalto.php' );
echo '