alipay 交易记录,邮件通知

feature/trippest
lyt 8 years ago
parent 9f49113d7c
commit f5c9f9713b

@ -79,7 +79,10 @@ class AlipayTradeService extends CI_Controller
log_message('error','Alipay ERROR gateway_url should not be NULL!'); log_message('error','Alipay ERROR gateway_url should not be NULL!');
} }
} }
public function index()
{
$this->note_list();
}
/*! /*!
* 异步通知 * 异步通知
* 必须返回"success"给支付系统 * 必须返回"success"给支付系统
@ -562,4 +565,134 @@ class AlipayTradeService extends CI_Controller
return $image; return $image;
} }
public function note_list()
{
$data = array();
$data["paytext"] = $this->payment_status();
$data["keywords"] = $this->input->get_post("keywords");
$data["date"] = $this->input->get_post("date");
empty($data['date']) ? $data['date'] = date('Y-m-d') : false;
if (!empty($data['keywords'])) {
$data['notelist'] = $this->Alipay_note_model->search_key($data['keywords']);
} else {
$data['notelist'] = $this->Alipay_note_model->search_date($data['date']);
}
$this->load->view("alipay_list",$data);
return;
}
//失败记录列表
public function note_faillist() {
$data = array();
$data["paytext"] = $this->payment_status();
//有关键词则不限制日期
$data['search_key'] = $this->input->post('keywords');
$data['date'] = $this->input->get_post('date');
empty($data['date']) ? $data['date'] = date('Y-m-d') : false;
$data['notelist'] = $this->Alipay_note_model->failnote(100);
$this->load->view("alipay_list",$data);
}
//用于HT--交易详情
public function receipt($pm_transaction_id) {
if ( ! $pm_transaction_id) {
return false;
}
$data = array();
$data = $this->Alipay_note_model->note($pm_transaction_id);
$this->load->view('alipay_receipt_mail', $data);
}
//获取note详情以便后续修改各项数据
public function note_modal($pn_txn_id = false, $pn_invoice = false ,$notice_time = false) {
$data = array();
$data['IPL_orderId'] = $pn_invoice;
if (!empty($pn_txn_id)) {
$data['note'] = $this->Alipay_note_model->note($pn_txn_id);
if (!empty($data['note'])) {
if (!empty($pn_invoice)) {
$orderid_info = analysis_orderid($pn_invoice);
} else {
$orderid_info = analysis_orderid($data['note']->IPL_orderId);
}
if (!empty($orderid_info)) {
$orderid_info = json_decode($orderid_info);
$data['order_info'] = $this->Alipay_model->get_order($orderid_info->orderid, true, $orderid_info->ordertype);
}
$data["paytext"] = $this->payment_status();
echo json_encode($this->load->view('alipay_note_setting', $data, true));
return true;
}
}
echo json_encode('没找到数据!');
return;
}
public function note_order_modal($old_order,$pn_invoice = false ,$notice_time = false) {
$data = array();
$data['IPL_orderId'] = $pn_invoice;
if (!empty($pn_invoice)) {
$data['note'] = $this->Alipay_note_model->note_order($old_order,$notice_time);
if (!empty($data['note'])) {
if (!empty($pn_invoice)) {
$orderid_info = analysis_orderid($pn_invoice);
} else {
$orderid_info = analysis_orderid($data['note']->IPL_orderId);
}
if (!empty($orderid_info)) {
$orderid_info = json_decode($orderid_info);
$data['order_info'] = $this->Alipay_model->get_order($orderid_info->orderid, true, $orderid_info->ordertype);
}
$data["paytext"] = $this->payment_status();
echo json_encode($this->load->view('alipay_note_setting', $data, true));
return true;
}
}
echo json_encode('没找到数据!');
return;
}
//关闭note通知用于手动处理通知后
public function close_note($pn_txn_id) {
$data = array();
$data['note'] = $this->Alipay_note_model->note($pn_txn_id);
if (!empty($data['note'])) {
$this->Alipay_note_model->update_send($pn_txn_id, 'send');
echo json_encode('通知已经关闭!');
return true;
}
echo json_encode('没找到数据!');
return;
}
//修改订单名
public function note_modal_save() {
$data = array();
$pn_txn_id = $this->input->post('pn_txn_id');
$pn_invoice = $this->input->post('pn_invoice');
if (!empty($pn_txn_id) && !empty($pn_invoice)) {
$orderid_info = analysis_orderid($pn_invoice);
if (!empty($orderid_info)) {
$orderid_info = json_decode($orderid_info);
$advisor_info = $this->Alipay_model->get_order($orderid_info->orderid, false, $orderid_info->ordertype);
if (!empty($advisor_info)) {
$this->Alipay_note_model->set_invoice($pn_txn_id, $pn_invoice);
$this->send_alipay($pn_txn_id);
echo json_encode('修改成功!');
return true;
}
}
}
echo json_encode('没找到数据!');
return;
}
public function payment_status()
{
return array(
"WAIT_BUYER_PAY" => "Pending",
"TRADE_SUCCESS" => "Payment success",
"TRADE_FINISHED" => "Payment success"
);
}
} }

@ -0,0 +1,256 @@
<?php
/*!
* 查询支付记录
* @author LYT <lyt@hainatravel.com>
* @date 2017-09-06
*/
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Alipay Notes - China Highlights</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content="width=device-width, initial-scale=1.0, user-scalable=no" name="viewport">
<meta content="yes" name="apple-mobile-web-app-capable">
<meta name="referrer" content="always">
<link href="//data.chinahighlights.com/css/min.php?f=/public/css/global.min.css,/css/ui.core.css,/css/ui.datepicker.css,/css/ui.theme.css,/css/calendar.css&amp;v=20170811" rel="stylesheet" type="text/css" />
<style type="text/css" media="screen and (max-width:767px)">
.pay_form .form-group{padding-left: 0!important;padding-right: 0!important;}
.pay_form .result_info{padding-top: 5px!important;}
</style>
<style type="text/css">
p{margin-bottom: 8.5px;}
a{text-decoration: none;}
.navbar-header h1{display: inline-block;margin-left: 30px;}
.pageTitle{margin-left: 300px;}
.pageTitle h1{color: #fff;border:none;font-size: 30px;}
.mobileTitle h1{color: #fff;border:none;font-size: 20px;}
.pay_form{padding: 30px 15px 15px 15px ;box-shadow: 0 0 10px #999;background: #fff;border-radius: 5px; }
.pay_form .form-group{padding-left: 50px;padding-right: 50px;}
.pay_form .control-label{text-align: left;}
.pay_form .result_info{padding-top: 25px;}
.pay_form .btn-danger{background: #a31022;}
.pay_footer{padding: 30px 0 10px;font-size: 12px;}
.line{border-bottom: 1px solid #cacaca;margin-left: 20px!important;margin-right: 20px!important;}
.btn{text-decoration: none;font-size: 14px;}
.mail_list {margin: 0;padding: 8px 15px;border-bottom: 1px solid #ccc;overflow: hidden; }
/*.input-group{border: 1px solid #ccc;}*/
.input-group-btn{border: 1px solid #ccc;padding: 5px;}
.search-btn{cursor: pointer; background: url(//data.chinahighlights.com/css/images/global/site-search-button.png) no-repeat center center;}
</style>
</head>
<body>
<div id="wrapper" class="chkVisible">
<div class="navbar-header" style="float:none;border-bottom: 1px solid #ccc;">
<a class="navbar-brand text-muted" style="height: 52px;padding-top: 7px;padding-left: 30px;" href="/webht.php/index/index">
<img width="150" style="height:40px;" src="/css/nav/img/6000.png">
</a>
<h1>Alipay Notes</h1>
<ul class="nav navbar-nav navbar-right pull-right" style="margin:7.5px 0;">
</ul>
</div>
</div>
<div id="content">
<div class="container-fluid marginTop">
<div class="row">
<!-- left -->
<div class="col-md-4 col-xs-24">
<div class="row">
<form method="post" id="search_list" action="/webht.php/apps/pay/AlipayTradeService/note_list/">
<div class="input-group">
<input type="text" name="keywords" value="<?php echo isset($search_key) ? $search_key : ''; ?>" class="form-control" placeholder="订单号" style="height: 33px;-webkit-box-shadow: inset 0 0px 0px rgba(0,0,0,0.075);box-shadow: inset 0 0px 0px rgba(0,0,0,0.075);border-bottom:1px solid #ddd;">
<span class="input-group-addon search-btn" onclick="$('#search_list').submit();"></span>
</div>
<div id="datepicker"></div>
</form>
</div>
<p class="btn-lg"></p>
<ul class="list-unstyled hidden-xs links">
<li><a class="text-primary" href="/webht.php/apps/pay/AlipayTradeService/note_list">&gt;全部收款邮件</a></li>
<li class="btn-sm"></li>
<li><a class="text-primary" href="/webht.php/apps/pay/AlipayTradeService/note_faillist" >&gt;错误通知列表</a></li>
<li class="btn-sm"></li>
<li><a class="text-primary" href="/webht.php/apps/pay/AlipayTradeService/send_alipay" target="_blank">&gt;手动处理通知</a></li>
<li class="btn-sm"></li>
<li><a class="text-primary" href="http://share.chtcdn.com/info.php/sendmail/send_mail" target="_blank">&gt;发送邮件</a></li>
<li class="btn-lg"></li>
</ul>
<div class="well well-sm" >
<h4>通知状态:</h4>
<p>1.send 表示通知正确发送给外联</p>
<p>2.unsend 表示通知在等待处理5~10分钟系统处理一遍</p>
<p>3.sendfail 状态的需要手工设置正确的订单号</p>
<p>4.Pending 还未到账,需要人工检查,确认支付或者取消,需要手工关闭此通知</p>
<p>5.Denied 银行拒付,需要手工关闭此通知</p>
</div>
</div>
<!-- end left -->
<div class=" pay_form_div col-sm-20 col-xs-24" style="min-height:1024px;border-left:1px solid #ddd;">
<ul class="row mail_list hidden-xs">
<a href="javascript:void(0);" style="cursor:default;color:#000;">
<li class="col-sm-1 "><strong>#</strong></li>
<li class="col-sm-6 "><strong>主题</strong></li>
<li class="col-sm-5 "><strong>付款人</strong></li>
<li class="col-sm-4 "><strong>交易号</strong></li>
<li class="col-sm-3 "><strong>收单时间</strong></li>
<li class="col-sm-3 "><strong>通知时间</strong></li>
<li class="col-sm-2 "><strong>通知状态</strong></li>
</a>
</ul>
<?php
foreach ($notelist as $key => $item) {
?>
<ul class="row mail_list">
<li class="col-sm-1 nopadding-L" style="overflow:hidden;word-break: break-all;height: 25px;"><?php echo ($key + 1); ?></li>
<li class="col-sm-6 nopadding-L" style="overflow:hidden;word-break: break-all;height: 25px;">
<?php if ($item->ALI_dealId) { ?>
<a class="seen" target="_blank" href="/webht.php/apps/pay/AlipayTradeService/receipt/<?php echo $item->ALI_dealId; ?>">
<?php } else {?>
<a class="seen" target="_blank" href="#">
<?php } ?>
<?php echo $item->ALI_orderId . ' / ' . $item->ALI_orderAmount . $item->ALI_currencyCode ; ?>
</a></li>
<li class="col-sm-5 nopadding-L" style="overflow:hidden;word-break: break-all;">
<?php //echo $item->ALI_payerName; ?>
<?php echo $item->ALI_payerEmail; ?>
</li>
<li class="col-sm-4 nopadding-L" style="overflow:hidden;word-break: break-all;"><?php echo $item->ALI_dealId; ?></li>
<li class="col-sm-3 nopadding-L" style="overflow:hidden;word-break: break-all;"><?php echo $item->ALI_acquiringTime; ?></li>
<li class="col-sm-3 nopadding-L" ><?php echo $item->ALI_noticeTime; ?></li>
<li class="col-sm-2" >
<?php
$show_send = '';
$class_css = '';
if ($item->ALI_sent == 'send') {
$show_send = $item->ALI_sent;
} else if (strcmp(trim($item->ALI_resultMsg), "TRADE_SUCCESS")) {
$class_css = 'btn-danger';
$show_send = $paytext[intval(trim($item->ALI_resultMsg))];
} else {
$class_css = 'btn-danger';
$show_send = $item->ALI_sent;
}
?><a href="javascript:void(0);" title="<?php echo $item->ALI_resultMsg; ?>" onclick="show_order_modal('<?php echo $item->ALI_dealId; ?>', '<?php echo $item->ALI_orderId; ?>','<?php echo $item->ALI_noticeTime; ?>','<?php echo $item->ALI_orderId; ?>')" class="btn btn-sm <?php echo $class_css; ?>"><?php echo $show_send; ?></a>
</li>
</ul>
<?php } ?>
</div>
<!-- </div> -->
<div class="pay_footer text-right">
<p>© 1998 China Highlights.
<a href="https://www.chinahighlights.com/privacy.htm" rel="nofollow">Privacy Statement</a>
</p>
</div>
</div>
</div>
</div>
<div id="main" class="container">
</div>
<!-- 手动设置订单号 -->
<div class="modal" id="modal_set_orderid" tabindex="-1" role="dialog" aria-labelledby="orderidModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="orderidModalLabel">订单号修正操作</h4>
</div>
<div class="modal-body" id="modal_set_orderid_body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary pull-left" onclick="close_note();" >关闭此订单通知</button>
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="submit_order_modal();">保存并发送通知</button>
</div>
</div>
</div>
</div>
</body>
<script src="//data.chinahighlights.com/js/min.php?f=/js/jquery-1.8.2.min.js&v=20170811" type="text/javascript"></script>
<script type="text/javascript">
jQuery.browser={};(function(){jQuery.browser.msie=false; jQuery.browser.version=0;if(navigator.userAgent.match(/MSIE ([0-9]+)./)){ jQuery.browser.msie=true;jQuery.browser.version=RegExp.$1;}})();
</script>
<script src="//data.chinahighlights.com/js/min.php?f=/public/js/bootstrap.min.js,/js/jquery.form.min.js,/js/ui.core.js,/js/ui.datepicker.js,/js/jquery.ui.widget.min.js&v=20170811" type="text/javascript"></script>
<script language="javascript">
$(document).ready(function() {
$('#datepicker').datepicker({
defaultDate: '<?php echo $date; ?>',
dateFormat: 'yy-mm-dd',
onSelect: function(dateText) {
window.location.href = '/webht.php/apps/pay/AlipayTradeService/note_list?date=' + dateText;
}
});
$(".ui-datepicker").css('width', '15.7em');
});
function show_order_modal(pn_txn_id, pn_invoice,noticeTime,old_order) {
if (pn_txn_id) {
$.ajax({
type: "get",
dataType: "json",
url: '/webht.php/apps/pay/AlipayTradeService/note_modal/' + pn_txn_id + '/' + pn_invoice + '/' + noticeTime,
success: function(data, textStatus) {
$('#modal_set_orderid_body').html(data);
$('#modal_set_orderid').modal('show');
},
error: function(msg) {
alert('\u53d1\u751f\u9519\u8bef\uff0c\u8bf7\u8054\u7cfbYCC...');
}
});
} else {
$.ajax({
type: "get",
dataType: "json",
url: '/webht.php/apps/pay/AlipayTradeService/note_order_modal/' + old_order + '/' + pn_invoice + '/' + noticeTime,
success: function(data, textStatus) {
$('#modal_set_orderid_body').html(data);
$('#modal_set_orderid').modal('show');
},
error: function(msg) {
alert('\u53d1\u751f\u9519\u8bef\uff0c\u8bf7\u8054\u7cfbYCC...');
}
});
}
}
function close_note() {
var pn_txn_id = $('#pn_txn_id').val();
if (confirm('是否关闭此通知: ' + pn_txn_id)) {
$.ajax({
type: "get",
dataType: "json",
url: '/webht.php/apps/pay/AlipayTradeService/close_note/' + pn_txn_id,
success: function(data, textStatus) {
alert(data);
},
error: function(msg) {
alert('\u53d1\u751f\u9519\u8bef\uff0c\u8bf7\u8054\u7cfbYCC...');
}
});
}
}
function submit_order_modal() {
$('#form_modal_orderid').ajaxSubmit({
success: function(data, textStatus) {
alert(data);
},
error: function(msg) {
alert('\u53d1\u751f\u9519\u8bef\uff0c\u8bf7\u8054\u7cfbYCC...');
},
dataType: 'json',
timeout: 30000
});
return false;
}
</script>
</html>

@ -0,0 +1,53 @@
<form action="http://www.mycht.cn/webht.php/apps/pay/iPayLinksService/note_modal_save" method="post" id="form_modal_orderid" name="form_modal_orderid">
<dl class="dl-horizontal">
<dt>交易号</dt>
<dd><?php echo $note->ALI_dealId ?> ( <?php echo $paytext[(trim($note->ALI_resultMsg))].".".$note->ALI_resultMsg; ?> )</dd>
</dl>
<dl class="dl-horizontal">
<dt>付款金额</dt>
<dd><?php echo $note->ALI_currencyCode . ' ' . $note->ALI_orderAmount ?></dd>
</dl>
<dl class="dl-horizontal">
<dt>付款时间</dt>
<dd><?php echo $note->ALI_acquiringTime; ?></dd>
</dl>
<dl class="dl-horizontal">
<dt>订单号</dt>
<dd>
<div class="input-group">
<input type="text" class="form-control" id="pn_invoice" name="pn_invoice" value="<?php echo!empty($ALI_orderId) ? $ALI_orderId : $note->ALI_orderId; ?>">
<span class="input-group-addon search-btn" onclick="show_order_modal('<?php echo $note->ALI_dealId; ?>', $('#pn_invoice').val(),'<?php echo $note->ALI_noticeTime; ?>','<?php echo $note->ALI_orderId; ?>')"></span>
</div>
<label class="text-danger">订单号形如: 160414408_B , B商务订单JJ160321052_T,T传统订单请务必加上后缀</label>
</dd>
</dl>
<dl class="dl-horizontal">
<dt>订单详细内容</dt>
<dd>
<?php
if (!empty($order_info)) {
echo "COLI_SN => $order_info->COLI_SN<br/>";
echo "COLI_ID => $order_info->COLI_ID<br/>";
echo "OPI_Email => $order_info->OPI_Email<br/>";
echo "OPI_Name => $order_info->OPI_Name<br/>";
echo!empty($order_info->COLI_GroupCode) ? "COLI_GroupCode => $order_info->COLI_GroupCode<br/>" : false;
echo!empty($order_info->COLI_OrderDetailText) ? "COLI_OrderDetailText => $order_info->COLI_OrderDetailText\n" : false;
} else {
echo '找不到订单内容';
}
?>
</dd>
</dl>
<dl class="dl-horizontal">
<dt><a href="javascript:void(0);" onclick="$('#note_original_data').toggle()" >原始数据</a></dt>
<dd> <span style="display: none;" id="note_original_data"><?php echo str_replace('","', '"<br/>"', $note->ALI_memo); ?></span></dd>
</dl>
<input type="hidden" name="pn_txn_id" id="pn_txn_id" value="<?php echo $note->ALI_dealId; ?>" />
</form>

@ -0,0 +1 @@
<html> <head><meta http-equiv=Content-Type content="text/html; charset=utf-8"></head> <body style="font-size: 12px;font-family: arial,helvetica,sans-serif;margin-top:0;margin-bottom:0;"> <div class=ppmail> <table align=center border=0 cellpadding=0 cellspacing=0 width=100%> <tbody> <tr valign=top> <td width=100%> <table align=center border=0 cellpadding=0 cellspacing=0 style="color:#333333 !important;font-family: arial,helvetica,sans-serif;font-size:12px;" width=100%> <tbody> <tr valign=top> <td> <img src=https://data.chinahighlights.com/pic/alipay_logo_228_80.png border=0 alt="PayPal logo"> </td> <td valign=middle align=right> <?php echo $ALI_completeTime;?> <br>Transaction ID:<a target=new href=#> <?php echo $ALI_dealId;?> </a> </td> </tr> </tbody> </table> <div style="margin-top: 10px;color:#333 !important;font-family: arial,helvetica,sans-serif;font-size:12px;"> <span style="color:#333333 !important;font-weight:bold;font-family: arial,helvetica,sans-serif;">Hello Guilin China International Travel Service Co.,Ltd,</span> <br> <span style=font-size:14px;color:#C88039;font-weight:bold;text-decoration:none;>You received a payment of <?php echo $ALI_orderAmount;?> <?php echo $ALI_currencyCode;?> </span> <br> <table cellpadding=5 style="color:#333333 !important;font-family: arial,helvetica,sans-serif;font-size:12px;"> <tbody> <tr> <td valign=top>Thanks for using iPayLinks.You can now ship any items.To see all the transaction details,log in to your iPayLinks account.<br>It may take a few moments for this transaction to appear in your account.<br> <span style=font-weight:bold;color:#333333;>Seller Protection-</span> <span style="color: #4c8f3a;"> </span> </td> <td> </td> </tr> </tbody> </table> <div style="margin-top:0px;border-bottom:1px solid #aaaaaa;"> </div> <table border=0 cellpadding=0 cellspacing=0 style="color:#333 !important;font-family: arial,helvetica,sans-serif;font-size:12px; margin-bottom:5px;" width=98% align=left> <tbody> <tr> <td style=padding-top:5px; valign=top width=50% align=left> <span style=color:#333333;font-weight:bold;>Buyer</span> <br> <?php echo $ALI_payerName;?> <br> <?php echo $ALI_payerEmail;?> <br> </td> <td style=padding-top:5px; valign=top> </td> </tr> </tbody> </table> <table align=center border=0 cellpadding=0 cellspacing=0 style="clear:both;color:#333 !important;font-family: arial,helvetica,sans-serif;font-size:12px;margin-top:5px;" width=100%> <tbody> <tr> <td style="border:1px solid #ccc;border-right:none;border-left:none;padding:5px 10px 5px 10px !important;color: #333333 !important;" width=330 align=left>Description</td> <td style="border:1px solid #ccc;border-right:none;border-left:none;padding:5px 10px 5px 10px !important;color: #333333 !important;" width=75 align=right>&nbsp;</td> <td style="border:1px solid #ccc;border-right:none;border-left:none;padding:5px 10px 5px 10px !important;color: #333333 !important;" width=75 align=right>&nbsp;</td> <td style="border:1px solid #ccc;border-right:none;border-left:none;padding:5px 10px 5px 10px !important;color: #333333 !important;" width=80 align=right>Amount</td> </tr> <tr> <td style=padding:10px; width=330 align=left> <?php echo $ALI_orderId;?> <br> </td> <td style=padding:10px; width=75 align=right> </td> <td style=padding:10px; width=75 align=right> </td> <td style=padding:10px; width=80 align=right> <?php echo $ALI_orderAmount;?> <?php echo $ALI_currencyCode;?> </td> </tr> </tbody> </table> </tr> </tbody> </table> </div> </body> </html>
Loading…
Cancel
Save