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; if(is_user_logged_in()) { global $current_user; get_currentuserinfo(); $username = $current_user->user_login; $userid = $current_user->ID; } else { $username = ''; $userid = ''; } $username = //更新订单数据库 $arr_insert = array( 'proid' => $proid, 'ordname' => $ordname,//买家姓名 'emailsend' => '0', 'postcode' => $postcode,//买家邮编 'aliacc' => trim((string)$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' => '', 'username' => $username, 'userid' => $userid ); $arr_insert = apply_filters('ws_alipay_insertorder',$arr_insert ); $ord = new ws_alipay_order(); $ordid = $ord->insert($arr_insert); //global $user_ID; $ord->sets('order_user_id',$user_ID); //特殊商品的额外处理 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 ''; ?>