sign($params); if ($params['sign'] == $sign) { return true; } else { return false; } } private function sign($params) { $content = config::USERNAME . $params['orderNumber'] . $params['cardNumber'] . $params['orderMoney'] . $params['orderPay']; $content .= $params['resultCode'] . $params['rechargeDesc'] . config::KEY; return md5($content); } public function notify($params) { $status = intval($params['resultCode']); $order_sn = $params['orderNumber']; $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']; $updata['official_sn'] = strtolower($params['rechargeVoucher']) == 'null' ? '' : $params['rechargeVoucher']; if ($status === 2) { Model('refill_order')->edit($order_id, $updata); cards_helper::assign($order_id, ''); return [$order_id, true, false,true]; } elseif ($status === 3) { $this->onError($order_id, $params['rechargeDesc']); return [$order_id, false, false,true]; } else { return [$order_id, false, false,false]; } } private function onError($order_id, $desc) { $desc = json_decode($desc, true); $status = $desc['rechargeStatus']; $desc = $desc['rechargeDesc']; if (in_array($status, [600400, 600401, 600402, 600403, 600404, 600405])) { cards_helper::freeze($order_id,$desc); } else { cards_helper::reuse($order_id); } } }