WS_Alipay_Mail( $proInfo, $ordInfo );
}
function WS_Alipay_Mail( $proInfo = NULL, $ordInfo = NULL ){
$this->proInfo = $proInfo;
$this->ordInfo = $ordInfo;
$this->tip['MSG_01'] = '亲爱的';
$this->tip['MSG_02'] = '您好!';
$this->tip['MSG_03'] = '感谢您的购买!';
$this->tip['MSG_04'] = '请仔细阅读以下内容:';
$this->tip['MSG_05'] = '订单详情如下:';
$this->tip['MSG_06'] = '商品信息如下:';
$this->tip['MSG_07'] = '此为系统邮件,请勿回复';
$this->tip['MSG_08'] = '请保管好您的邮箱,避免信息被他人窃取';
$this->tip['MSG_09'] = '如有任何疑问,可与';
$this->tip['MSG_10'] = '客服';
$this->tip['MSG_11'] = '联系进行咨询。';
$this->tip['MSG_12'] = '会员';
$this->tip['MSG_13'] = '友情提醒:';
$this->tip['MSG_20'] = '';
$this->tip['ORDINFO'] = FALSE;
$this->tip['PROINFO'] = FALSE;
//设置当前为HTML模式
add_filter('wp_mail_from_name', create_function('', 'return "支付交易提醒";'),999999);
add_filter('wp_mail_content_type',create_function('', 'return "text/html";'),999999);
}
function refresh( $proInfo = NULL, $ordInfo = NULL ){
$this->proInfo = $proInfo;
$this->ordInfo = $ordInfo;
}
function send( $receiver, $task, $isSeller = false ){
$this->arrOrdInfo = array();
$this->arrProInfo = array();
$headers = "BCC: ".get_bloginfo('admin_email')."\r\n";
//重写发送对象
if( $isSeller )
$this->tip['MSG_12'] = '管理员';
else
$this->tip['MSG_12'] = '会员';
//创建新任务
switch ( strtoupper($task) ){
case 'ORDER'://下了一个订单
if( $isSeller ){
$this->tip['SUBJECT'] = '[管理员]新交易已创建:等待买家付款';
$this->tip['MSG_20'] = '新交易已创建, 等待买家付款';
$this->tip['MSG_03'] = '您有一个新的订单!';
}else{
$this->tip['SUBJECT'] = '交易状态已改变为:等待付款';
$this->tip['MSG_20'] = '您的订单已被记录, 请尽快完成支付。';
}
$this->arrOrdInfo[] = array('商户订单', $this->ordInfo['series']);
$this->arrOrdInfo[] = array('商品编号', $this->proInfo['proid']);
$this->arrOrdInfo[] = array('商品名称', $this->proInfo['name']);
$this->arrOrdInfo[] = array('商品单价', $this->ordInfo['payprice']);
$this->arrOrdInfo[] = array('购买数量', $this->ordInfo['buynum']);
$this->arrOrdInfo[] = array('商品运费', $this->ordInfo['freight']);
$this->arrOrdInfo[] = array('支付总计', $this->ordInfo['ordfee']);
$this->arrOrdInfo[] = array('支付平台', $this->gateName());
$this->arrOrdInfo[] = array('下单时间', $this->ordInfo['otime']);
$headers = '';
break;
case 'PAY_SUCCESS'://支付成功
if( $isSeller ){
$this->tip['SUBJECT'] = '[管理员]交易状态已改变为:买家付款成功';
$this->tip['MSG_20'] = '买家已经付款成功';
$this->tip['MSG_03'] = '有一笔交易已经支付成功!';
}else{
$this->tip['SUBJECT'] = '交易状态已改变为:付款成功';
$this->tip['MSG_20'] = '您已经支付成功!
(为提供交易依据,该邮件已同时发送给买家和卖家)';
}
$this->arrOrdInfo[] = array('商户订单', $this->ordInfo['series']);
$this->arrOrdInfo[] = array('平台订单', $this->ordInfo['platTradeNo']);
$this->arrOrdInfo[] = array('商品名称', $this->proInfo['name']);
$this->arrOrdInfo[] = array('商品单价', $this->ordInfo['payprice']);
$this->arrOrdInfo[] = array('购买数量', $this->ordInfo['buynum']);
$this->arrOrdInfo[] = array('商品运费', $this->ordInfo['freight']);
$this->arrOrdInfo[] = array('支付总计', $this->ordInfo['ordfee']);
$this->arrOrdInfo[] = array('支付平台', $this->gateName());
if( !empty($this->ordInfo['sendsrc']) )
$this->arrProInfo[] = array('自动发货', $this->ordInfo['sendsrc']);
if( !empty($this->proInfo['download']) )
$this->arrProInfo[] = array('下载地址', $this->proInfo['download']);
if( !empty($this->proInfo['zipcode']) )
$this->arrProInfo[] = array('解压密码', $this->proInfo['zipcode']);
if( !empty($this->proInfo['emailtip']) )
$this->arrProInfo[] = array('其他说明', $this->proInfo['emailtip']);
//$this->arrProInfo[] = array('生效时间', $this->ordInfo['stime']);
//$this->arrProInfo[] = array('失效时间', $this->endTime());
break;
//FOR ADMINISTRATOR
case 'PROLESS'://商品余量不足
$this->tip['SUBJECT'] = '[管理员]商品余量不足, 请及时补充!';
$this->tip['MSG_12'] = '管理员';
$this->tip['MSG_03'] = '您有一个新订单!';
$this->tip['MSG_20'] = '仓库余量不足。';
$this->arrOrdInfo[] = array('商户编号', $this->proInfo['proid']);
$this->arrOrdInfo[] = array('商品名称', $this->proInfo['name']);
$this->arrOrdInfo[] = array('商品描述', $this->proInfo['description']);
$this->arrOrdInfo[] = array('商品单价', $this->proInfo['price']);
$this->arrOrdInfo[] = array('剩余数量', $this->proInfo['num']);
//$this->arrOrdInfo[] = array('管理地址', '');
break;
//FOR ADMINISTRATOR
case 'ORD_NOT_FOUND';//订单丢失
$this->tip['SUBJECT'] = '[管理员]重要提醒:订单缺失, 等待发货';
$this->tip['MSG_12'] = '管理员';
$this->tip['MSG_03'] = '您有一笔交易,客户已经支付成功!但交易还未结束.';
$this->tip['MSG_20'] = '买家已经完成付款, 但订单已经缺失, 当前处于"等待发货"状态。
请积极与客户取得联系!人工完成发货(客户的信息可以在支付平台上查询到)';
break;
//FOR ADMINISTRATOR
case 'PRO_NOT_FOUND';//商品丢失
$this->tip['SUBJECT'] = '[管理员]重要提醒:商品缺失, 等待发货';
$this->tip['MSG_12'] = '管理员';
$this->tip['MSG_03'] = '您有一笔交易,客户已经支付成功!但交易还未结束.';
$this->tip['MSG_20'] = '买家已经完成付款, 但订购的商品已经缺失, 当前处于"等待发货"状态。
请积极与客户取得联系!人工完成发货(客户的信息可以在支付平台上查询到)';
break;
//FOR ADMINISTRATOR
case 'SRC_EMPTY'://货源为空
$this->tip['SUBJECT'] = '[管理员]重要提醒:货源为空, 等待发货';
$this->tip['MSG_12'] = '管理员';
$this->tip['MSG_03'] = '您有一笔交易,客户已经支付成功!但交易还未结束.';
$this->tip['MSG_20'] = '买家已经完成付款, 但订购的商品自动货源已经为空, 当前处于"等待发货"状态。
请积极与客户取得联系!人工完成发货(客户的信息可以在支付平台上查询到)';
break;
}
return wp_mail( $receiver, $this->tip['SUBJECT'], $this->generateHtml(), $headers );
}
function generateHtml(){
$siteName = get_bloginfo('name');
$siteUrl = get_bloginfo('url');
$supportUrl = ws_alipay_get_setting('link_support');
if(!filter_var($supportUrl,FILTER_VALIDATE_URL)) $supportUrl=$siteUrl;
$ordInfoHtml = '';
foreach( $this->arrOrdInfo as $li ){
$ordInfoHtml .= '
{$this->tip['MSG_03']}{$this->tip['MSG_04']}
{$this->tip['MSG_20']}
{$this->tip['MSG_07']}
{$this->tip['MSG_08']}
{$this->tip['MSG_09']}
{$this->tip['MSG_10']} {$this->tip['MSG_11']}
$siteUrl
Copyright $siteName 2010-2012 All Rights Reserved
HTML;
return $html;
}
//TOOLS
function gateName( $en = NULL ){
!empty($en) || $en = $this->ordInfo['paygate'];
switch (strtoupper($en)){
case 'ALIPAY':
$name = '支付宝';break;
case 'TENPAY':
$name = '财付通';break;
case 'PAYPAL':
$name = 'PayPal';break;
default:
$name = $en;
}
return $name;
}
function endTime(){
if( empty($this->ordInfo['endTime']) )
return '不失效';
else
return $this->formatTime($this->ordInfo['endTime']);
}
function formatTime( $timestamp ){
return date( 'Y-m-d H:i:s', $timestamp );
}
}
endif;
?>