perf: PayPal收款记录: 增加账户等字段

webht/payment
Lei OT 12 months ago
parent 00299e79d0
commit 0449fc0070

@ -583,7 +583,11 @@ class Index extends CI_Controller {
$pn_custom = $this->input->post('custom');
empty($pn_custom) ? $pn_custom = '' : false;
$pn_parent_txn_id = $this->input->post('parent_txn_id');
empty($pn_parent_txn_id) ? $pn_parent_txn_id = '' : false;
$pn_mc_gross = $this->input->post('mc_gross');
$pn_mc_fee = $this->input->post('mc_fee');
$pn_item_name = $this->input->post('item_name');
if (empty($pn_item_name)) {
@ -602,6 +606,7 @@ class Index extends CI_Controller {
$pn_payment_date = $this->input->post('payment_date');
$pn_payer = $this->input->post('first_name') . ' ' . $this->input->post('last_name');
$pn_payer_email = $this->input->post('payer_email');
$pn_receiver_email = $this->input->post('business');
$post_data = $_POST;
$post_data['ipn_time'] = date('Y-m-d H:i:s');
$post_data['notify_time'] = date('Y-m-d H:i:s');
@ -609,7 +614,7 @@ class Index extends CI_Controller {
if (!empty($pn_txn_id)) {
//把PDT时间转成GMT时间
$pn_payment_date = gmdate('Y-m-d H:i:s', strtotime($pn_payment_date));
$this->Note_model->save_paypal_note($pn_txn_id, $pn_invoice, $pn_custom, $pn_mc_gross, $pn_item_name, $pn_item_number, $pn_mc_currency, $pn_payment_status, $pn_payer, $pn_payer_email, $pn_payment_date, $pn_memo);
$this->Note_model->save_paypal_note($pn_txn_id, $pn_invoice, $pn_custom, $pn_mc_gross, $pn_mc_fee, $pn_item_name, $pn_item_number, $pn_mc_currency, $pn_payment_status, $pn_payer, $pn_payer_email, $pn_payment_date, $pn_memo, $pn_receiver_email, $pn_parent_txn_id);
log_message('error','paypal-note-succeed ' . $pn_txn_id . ' # ' . $pn_invoice);
// echo 'ok';
} else {
@ -662,6 +667,7 @@ class Index extends CI_Controller {
$pn_mc_currency = '';
$pn_mc_fee = '';
$GAI_API = new stdClass();
$pn_receiver_account = '';
switch ($post_data->event_type) {
case 'PAYMENT.SALE.COMPLETED':
$pn_invoice = $post_data->resource->invoice_number;
@ -679,6 +685,7 @@ class Index extends CI_Controller {
}
$GAI_API->res_links = $post_data->resource->links;
$post_data->GAI_API = $GAI_API;
$pn_receiver_account = $GAI_API->payee->email_address;
break;
case 'PAYMENT.SALE.REFUNDED':
$pn_invoice = $post_data->resource->invoice_number;
@ -705,6 +712,7 @@ class Index extends CI_Controller {
$GAI_API->payee = $post_data->resource->payee;
$GAI_API->res_links = $post_data->resource->links;
$post_data->GAI_API = $GAI_API;
$pn_receiver_account = $GAI_API->payee->email_address;
break;
case 'PAYMENT.CAPTURE.REFUNDED':
$pn_invoice = $post_data->resource->invoice_id;
@ -725,6 +733,7 @@ class Index extends CI_Controller {
$GAI_API->res_links = $post_data->resource->links;
$post_data->GAI_API = $GAI_API;
$pn_receiver_account = $GAI_API->payee->email_address;
break;
@ -755,6 +764,7 @@ class Index extends CI_Controller {
$pn_invoice,
$pn_custom,
$pn_mc_gross,
$post_data->mc_fee,
"",
"",
$pn_mc_currency,
@ -762,7 +772,10 @@ class Index extends CI_Controller {
"",
"",
$pn_payment_date,
$pn_memo);
$pn_memo
,$pn_receiver_account
,isset($post_data->parent_txn_id) ? $post_data->parent_txn_id : ''
);
log_message('error','paypal-webhook-succeed ' . $pn_txn_id . ' # ' . $pn_invoice);
// echo 'ok';
} else {

@ -42,7 +42,7 @@ class Note_model extends CI_Model {
$this->pn_send = " AND (pn_send='sendfail' OR pn_send='') AND pn_payment_status COLLATE SQL_Latin1_General_CP1_CI_AS ='Completed' ";
// 1小时前
$date = date("Y-m-d H:i:s", time() - 1800);
$this->search = " AND pn_datetime < '$date' " ;
$this->search = " AND pn_lastedittime < '$date' " ;
//$this->orderby = ' ORDER BY pn.pn_sn ASC ';
return $this->get_list();
}
@ -53,7 +53,7 @@ class Note_model extends CI_Model {
$this->pn_send = " AND (pn_send='sendfail' OR pn_send='') ";
// 1小时前
$date = date("Y-m-d H:i:s", time() - 3600);
$this->search = $topnum === 20 ? " AND pn_datetime < '$date' " : '';
$this->search = $topnum === 20 ? " AND pn_lastedittime < '$date' " : '';
//$this->orderby = ' ORDER BY pn.pn_sn ASC ';
return $this->get_list();
}
@ -135,7 +135,7 @@ class Note_model extends CI_Model {
OR pn.pn_item_number like '%$search_key%'
OR pn.pn_payer like '%$search_key%'
OR pn.pn_payer_email like '%$search_key%'
OR SUBSTRING(pn_memo, CHARINDEX('parent_txn_id\"', pn_memo) + 16, 17) = '$search_key'
-- OR SUBSTRING(pn_memo, CHARINDEX('parent_txn_id\"', pn_memo) + 16, 17) = '$search_key'
) ";
}
$this->search = $search_sql;
@ -143,18 +143,19 @@ class Note_model extends CI_Model {
}
//存储paypal的实时通知
public function save_paypal_note($pn_txn_id, $pn_invoice, $pn_custom, $pn_mc_gross, $pn_item_name, $pn_item_number, $pn_mc_currency, $pn_payment_status, $pn_payer, $pn_payer_email, $pn_payment_date, $pn_memo) {
public function save_paypal_note($pn_txn_id, $pn_invoice, $pn_custom, $pn_mc_gross, $pn_mc_fee, $pn_item_name, $pn_item_number, $pn_mc_currency, $pn_payment_status, $pn_payer, $pn_payer_email, $pn_payment_date, $pn_memo, $pn_receiver_account=null, $pn_reference_id=null) {
$sql = "
INSERT INTO paypal_note
(
pn_txn_id,pn_invoice,pn_custom, pn_mc_gross, pn_item_name, pn_item_number,pn_mc_currency, pn_payment_status,pn_payer,pn_payer_email,pn_payment_date, pn_memo,pn_datetime,pn_send
pn_txn_id,pn_invoice,pn_custom, pn_mc_gross, pn_mc_fee, pn_item_name, pn_item_number,pn_mc_currency, pn_payment_status,pn_payer,pn_payer_email,pn_payment_date, pn_memo, pn_receiver_account, pn_lastedittime, pn_reference_id,
pn_datetime, pn_send
)
VALUES
(
?,N?,N?,?,N?,N?,?,?,N?,N?,?, N?, GETDATE(),'unsend'
?,N?,N?,?,?,N?,N?,?,?,N?,N?,?, N?, ?, GETDATE(), ?, GETDATE(),'unsend'
)
";
$query = $this->HT->query($sql, array($pn_txn_id, $pn_invoice, $pn_custom, $pn_mc_gross, mb_substr($pn_item_name, 0, 250) , $pn_item_number, $pn_mc_currency, $pn_payment_status, $pn_payer, $pn_payer_email, $pn_payment_date, $pn_memo));
$query = $this->HT->query($sql, array($pn_txn_id, $pn_invoice, $pn_custom, $pn_mc_gross, $pn_mc_fee, mb_substr($pn_item_name, 0, 250) , $pn_item_number, $pn_mc_currency, $pn_payment_status, $pn_payer, $pn_payer_email, $pn_payment_date, $pn_memo, $pn_receiver_account, $pn_reference_id));
$insertid = $this->HT->last_id('paypal_note');
return $query;
}
@ -176,6 +177,7 @@ class Note_model extends CI_Model {
,pn.pn_payer_email
,pn.pn_memo
,pn.pn_datetime
,pn.pn_lastedittime
,pn.pn_payment_date
,pn.pn_send
FROM paypal_note pn
@ -231,7 +233,7 @@ class Note_model extends CI_Model {
public function update_send($pn_txn_id, $pn_send, $pn_sn=NULL) {
$sql = "
UPDATE paypal_note
SET pn_send = ?, pn_datetime=GETDATE()
SET pn_send = ?, pn_lastedittime=GETDATE()
WHERE pn_txn_id = ?
";
$sql .= ($pn_sn===NULL) ? "" : " and pn_sn=$pn_sn ";

Loading…
Cancel
Save