diff --git a/webht/third_party/pay/controllers/AlipayTradeService.php b/webht/third_party/pay/controllers/AlipayTradeService.php index d9f4cf39..277c4e4f 100644 --- a/webht/third_party/pay/controllers/AlipayTradeService.php +++ b/webht/third_party/pay/controllers/AlipayTradeService.php @@ -113,7 +113,8 @@ class AlipayTradeService extends CI_Controller } $code = isset($asyns_resp->data->code) ? strval($asyns_resp->data->code) : NULL ; $buyer = isset($asyns_resp->data->buyer_logon_id) ? strval($asyns_resp->data->buyer_logon_id) : NULL ; - if (strcmp(trim(strval($asyns_resp->data->trade_status)), "TRADE_SUCCESS") == 0) { + if (strcmp(trim(strval($asyns_resp->data->trade_status)), "TRADE_SUCCESS") == 0 + || strcmp(trim(strval($asyns_resp->data->trade_status)), "TRADE_FINISHED") == 0) { if ($notify_type === "pay") { $this->Alipay_note_model->save_alipay( strval($asyns_resp->data->trade_no) @@ -624,7 +625,8 @@ var_dump($response->$responseNode); log_message('error','Alipay query ' . $data["keywords"]); $query_pay = $this->query_pay($data["keywords"]); log_message('error','Alipay query result ' . var_export($query_pay, 1)); - if ( ! empty($query_pay) && strval($query_pay->code)==="10000" && strval($query_pay->trade_status)==="TRADE_SUCCESS") { + if ( ! empty($query_pay) && strval($query_pay->code)==="10000" + && in_array(strval($query_pay->trade_status), array("TRADE_SUCCESS", "TRADE_FINISHED")) ) { $pay_type = $query_pay->total_amount>0 ? "pay" : "refund"; $new_record = $this->Alipay_note_model->save_alipay( strval($query_pay->trade_no)