处理收到的收款推送,将各支付方式的处理方法合并. 20%

feature/trippest
lyt 6 years ago
parent 43e9c8a68e
commit 4decfcfae7

@ -0,0 +1,43 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class PaymentService extends CI_Controller {
public function __construct(){
parent::__construct();
bcscale(2);
$this->load->helper('payment');
// $this->config->load('wxpay', true);
$this->load->model('Online_payment_note_model', 'note_model');
$this->load->model('Online_payment_account_model', 'account_model');
}
public function index()
{
}
public function send_notify($payment_method=NULL, $transactionId=NULL)
{
// $save_column['OPN_accountType'] = $xml_arr[''];
// $save_column['OPN_accountStatus'] = $xml_arr[''];
// $save_column['OPN_accountTime'] = $xml_arr[''];
$data = array();
$int = 0;
//优先处理指定的交易号,用于修正交易号直接发送通知
if ( ! empty($transactionId)) {
$data['unsend_list'] = $this->note_model->get_note($payment_method, $transactionId);
}
// 待处理的
if (empty($data['unsend_list'])) {
$data['unsend_list'] = $this->note_model->unsend_note($payment_method, 10);
}
//没有未处理的数据再查找处理失败的数据
if (empty($data['unsend_list'])) {
$data['unsend_list'] = $this->note_model->sendfail_note($payment_method, 20);
}
}
}

@ -90,13 +90,6 @@ log_message('error','notify begin ----');
# exit(); // end # exit(); // end
} }
public function send_notify()
{
// $save_column['OPN_accountType'] = $xml_arr[''];
// $save_column['OPN_accountStatus'] = $xml_arr[''];
// $save_column['OPN_accountTime'] = $xml_arr[''];
}
public function check_sign($xml_arr) public function check_sign($xml_arr)
{ {
if ( ! array_key_exists('sign', $xml_arr)) { if ( ! array_key_exists('sign', $xml_arr)) {
@ -135,7 +128,7 @@ log_message('error','notify begin ----');
} }
//签名步骤四:所有字符转为大写 //签名步骤四:所有字符转为大写
$result = strtoupper($string); $result = strtoupper($string);
log_message('error',$result); // log_message('error',$result);
return $result; return $result;
} }

@ -25,6 +25,59 @@ class Online_payment_note_model extends CI_Model {
return TRUE; return TRUE;
} }
public $topnum = false;
public $orderby = false;
public $send = false;
public $search = false;
public $transactionId = false;
public $payment_status = false;
public function init_query() {
$this->topnum = false;
$this->send = false;
$this->search = false;
$this->payment_status = false;
$this->transactionId = false;
$this->orderby = ' ORDER BY OPN_SN DESC ';
}
public function query_note()
{
$top_sql = $this->topnum ? (" TOP " . $this->topnum) : "";
$sql .= "SELECT $top_sql opn.*
FROM [InfoManager].[dbo].[OnlinePaymentNote] opn
WHERE 1=1 ";
$this->send ? $sql.=$this->send : false;
$this->search ? $sql.=$this->search : false;
$this->transactionId ? $sql.=$this->transactionId : false;
$this->orderby ? $sql.=$this->orderby : false;
$query = $this->INFO->query($sql);
return $query->result();
}
public function get_note($payment_method=NULL, $transactionId=null)
{
$this->init_query();
$this->topnum=1;
$this->transactionId = " AND opn.OPN_transactionId=" . $this->INFO->escape($transactionId);
return $this->query_note();
}
public function unsend_note($payment_method=NULL, $num=2)
{
$this->init_query();
$this->topnum = $num;
$this->send = " AND (OPN_noticeSendStatus='unsend' OR OPN_noticeSendStatus='' OR OPN_noticeSendStatus IS NULL) ";
return $this->query_note();
}
public function sendfail_note($payment_method=NULL, $num=2)
{
$this->init_query();
$this->topnum = $num;
$this->send = " AND OPN_noticeSendStatus='sendfail' ";
return $this->query_note();
}
} }

Loading…
Cancel
Save