|
@@ -3,6 +3,7 @@
|
|
|
namespace mtopcard;
|
|
|
|
|
|
use Log;
|
|
|
+use PHPUnit\SebastianBergmann\Type\UnknownType;
|
|
|
|
|
|
#用户卡的类型
|
|
|
const UnknownCard = 0;
|
|
@@ -235,13 +236,13 @@ function valid_phone($card_no)
|
|
|
{
|
|
|
$type_checker = function ($channel)
|
|
|
{
|
|
|
- if($channel == '中国联通') {
|
|
|
+ if($channel == '联通') {
|
|
|
return ChinaUnicomCard;
|
|
|
}
|
|
|
- elseif($channel == '中国电信') {
|
|
|
+ elseif($channel == '电信') {
|
|
|
return ChinaTelecomCard;
|
|
|
}
|
|
|
- elseif($channel == '中国移动') {
|
|
|
+ elseif($channel == '移动') {
|
|
|
return ChinaMobileCard;
|
|
|
}
|
|
|
else {
|
|
@@ -284,7 +285,7 @@ function valid_phone($card_no)
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- $ali = function ($card_no, &$validate, &$card_type, &$region_no) use ($validate_checker, $type_checker, $regin_checker): bool
|
|
|
+ $ali = function ($card_no, &$validate, &$region_no) use ($validate_checker, $regin_checker): bool
|
|
|
{
|
|
|
$url = 'https://mobileempty.shumaidata.com/mobileempty';
|
|
|
$params['mobile'] = $card_no;
|
|
@@ -301,7 +302,6 @@ function valid_phone($card_no)
|
|
|
{
|
|
|
$data = $resp['data'];
|
|
|
$validate = $validate_checker(intval($data['status']));
|
|
|
- $card_type = $type_checker($data['channel']);
|
|
|
$region_no = $regin_checker($data['area']);
|
|
|
return true;
|
|
|
} else {
|
|
@@ -310,7 +310,7 @@ function valid_phone($card_no)
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- $tianyan = function ($card_no, &$validate, &$card_type, &$region_no) use ($validate_checker, $type_checker, $regin_checker): bool
|
|
|
+ $tianyan = function ($card_no, &$validate, &$region_no) use ($validate_checker, $regin_checker): bool
|
|
|
{
|
|
|
$url = 'https://api.shumaidata.com/v4/mobile_empty/check';
|
|
|
$appid = '2Xfa6IFIPv0sVUjy';
|
|
@@ -334,7 +334,6 @@ function valid_phone($card_no)
|
|
|
{
|
|
|
$data = $resp['data'];
|
|
|
$validate = $validate_checker(intval($data['status']));
|
|
|
- $card_type = $type_checker($data['channel']);
|
|
|
$region_no = $regin_checker($data['area']);
|
|
|
return true;
|
|
|
} else {
|
|
@@ -343,7 +342,7 @@ function valid_phone($card_no)
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- $tianyan_transfer = function ($card_no)
|
|
|
+ $tianyan_cardtyper = function ($card_no) use ($type_checker)
|
|
|
{
|
|
|
$url = 'https://api.shumaidata.com/v4/mobile-transfer/query';
|
|
|
$appid = '2Xfa6IFIPv0sVUjy';
|
|
@@ -369,10 +368,14 @@ function valid_phone($card_no)
|
|
|
$ispType = $data['ispType'];
|
|
|
$newIspType = $data['newIspType'];
|
|
|
Log::record("tianyan_transfer phone:{$card_no} ispType:{$ispType} newIspType:{$newIspType}", Log::DEBUG);
|
|
|
- return $newIspType;
|
|
|
+
|
|
|
+ $card_type = $type_checker($newIspType);
|
|
|
+ $isTransfer = $ispType != $newIspType;
|
|
|
+
|
|
|
+ return [true,$card_type,$isTransfer];
|
|
|
} else {
|
|
|
Log::record("tianyan_transfer phone:{$card_no} return msg:{$resp['msg']}", Log::DEBUG);
|
|
|
- return false;
|
|
|
+ return [false,UnknownCard,false];
|
|
|
}
|
|
|
};
|
|
|
|
|
@@ -381,23 +384,27 @@ function valid_phone($card_no)
|
|
|
$region_no = -1;
|
|
|
|
|
|
if($card_type == PetroChinaCard || $card_type == SinopecCard) {
|
|
|
- return [$validate,$card_type,$region_no];
|
|
|
+ return [$validate,$card_type,$region_no,false];
|
|
|
}
|
|
|
|
|
|
- $ret = $tianyan($card_no,$validate,$card_type,$region_no);
|
|
|
+ [$succ,$_card_type,$_isTransfer] = $tianyan_cardtyper($card_no);
|
|
|
+ if($succ) {
|
|
|
+ $card_type = $_card_type;
|
|
|
+ $isTransfer = $_isTransfer;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ $isTransfer = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $ret = $tianyan($card_no,$validate,$region_no);
|
|
|
if($ret) {
|
|
|
- $newIspType = $tianyan_transfer($card_no);
|
|
|
- if(!empty($newIspType)) {
|
|
|
- $card_type = $type_checker("中国{$newIspType}");
|
|
|
- }
|
|
|
- return [$validate,$card_type,$region_no];
|
|
|
+ return [$validate,$card_type,$region_no,$isTransfer];
|
|
|
}
|
|
|
|
|
|
- $ret = $ali($card_no,$validate,$card_type,$region_no);
|
|
|
+ $ret = $ali($card_no,$validate,$region_no);
|
|
|
if($ret) {
|
|
|
- return [$validate,$card_type,$region_no];
|
|
|
+ return [$validate,$card_type,$region_no,$isTransfer];
|
|
|
}
|
|
|
|
|
|
- $card_type = card_type($card_no,$region_no);
|
|
|
- return [$validate,$card_type,$region_no];
|
|
|
+ return [true,$card_type,-1,false];
|
|
|
}
|