decrypt($params); if ($res == 1) { return true; } else { return false; } } private function decrypt($params) { $sign = $params['sign']; unset($params['sign']); $content = ''; ksort($params); foreach ($params as $key => $val){ $content .= "{$key}={$val}&"; } $content = rtrim($content,'&'); return openssl_verify($content, hex2bin($sign), config::PUBLIC_KEY); } private function message_decrypt($message) { return json_decode(openssl_decrypt($message, 'AES-256-ECB', config::AES_KEY, 0, '')); } public function notify($params) { $data = $this->message_decrypt($params['message']); $status = $data->charge_result; $order_sn = $data->app_order_no; $order_info = Model('vr_order')->getOrderInfo(['order_sn' => $order_sn]); if (empty($order_info)) { return [false, false, false,false]; } $order_id = $order_info['order_id']; if ($status === 'SUCCESS') { return [$order_id, true, false,true]; } elseif ($status === 'FAILED') { return [$order_id, false, true,true]; } else { return [$order_id, false, false,false]; } } }