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 \n商品名:$proInfo[name] \n管理地址:$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 '';