📄 11696.sc
字号:
[QQLogOn wsMYQQ,""]
Passed->stBackTop
Failed->stNotNormal
TimeOut ->stNotNormal
:stBackTop
[assign wsQQType,FD8] //把号码类型保存
[Assign IR2,0]
->stExit
:stSex
[ClearDTMF ]
[ SETDTMF "12*#" ] //请重新选择性别类型,1、男性,2,女性,返回请按#键
[Prompt 2067]
StopPlayBack -> stSexDigit
DialTerminate -> stSexDigit
:stSexDigit
[Digit 10]
StopDigits('1') ->stSaveSex
StopDigits('2') ->stSaveSex
StopDigits -> stSex
TimeOut -> stSex
:stSaveSex
[QQSetPersonalInfo wsMYQQ,3,SR0]
Passed ->stExit
Failed ->stExit
:stNotNormal
[Assign IR2,1]
->stExit
:stExit
[Return IR2 ]
}
//★★用户认证函数begin
FuncVerifyUser
{
//★★绑定判断:$AccountID为空、$CallerID为主叫号码,VerifyUser返回值:Verify(0)----号码绑定;
//★★ Verify(149)----号码未绑定;Verify----例外;Failed----失败
//★★用户认证:$AccountID为卡号、$AccountKind为卡的类型、$Password为卡的密码,VerifyUser返回值:
//★★ Verify(0)----正常、Verify(108)----卡余额不足、Verify(110)----卡/用户不存在、
//★★ Verify(114)----卡/用户密码错误、Verify(118)----消息包异常、Verify(141)----卡号未激活、
//★★ Verify(142)----卡正在使用、Verify(143)----卡过有效期、Verify(144)----卡上黑名单、
//★★ Verify(145)----卡余额达到限额、Verify(146)----卡不允许使用、Verify(147)----系统故障
//★★ Verify----例外;Failed----失败
:stWait
////[Assign $CallerID,@PhoneNum]
[Assign IR22,1]
[Assign IR23,0] //判断重输卡号次数
[Assign SR29,".\vox\"]
-> stVerifyCaller
//★★手机判断begin/////////////////////////////////////////////
//★★如果第1位是0则去掉0,然后看剩下的号码长度是否大于12位,如果大于
//★★12位,则认为是区号+真实号码,否则是真实号码,然后再去掉区号,再
//★★判断第1--3位是否是:13/013的,如果是则走预付费,否则进行南北方判断
//★★如果是南方则预付费,北方则要判断号码是否非法,然后再走后付费
//★★我大致考虑了一下,对电话商务的流程,可以通过以下简单的规则判断主叫号码的合法性。
//★★鉴于目前双区号号码均已经去除了一个区号,剩下的号码无非两种情况:一个区号(不含0)+本地号码
//★★或仅本地号码(特别复杂情况暂不考虑)。这时号码的长度应该如下:
//★★长度为10位或11位
:stVerifyCaller
[Assign $AccountKind,0]
[Assign $AccountID,""]
[Assign $Password,""]
[VerifyUser $AccountID,-1]
Verify(0)->stNotCard
Verify(150) ->stVerifyPhoneCard
Verify(151) ->stVerifyPhoneCard
Verify(152) ->stVerifyPhoneCard
Verify ->stJudgeSouth
:stJudgeSouth
[AccessFile @FeeFile,0]
Passed ->stExit
Failed ->stNotCard
:stIfPhoneZeroBegin
[Assign SR10,$CallerID] //判断第一位是不是0,如果是则去掉0
[StrSub SR10,1,1]
[Equal SR0,"0"]
Passed -> stErasePhoneZero
Failed -> stJudgePhoneLen
:stErasePhoneZero
[StrSub SR10,2,30]
[Assign SR10,SR0]
->stJudgePhoneLen
:stJudgePhoneLen //判断长度如果大于12位,则认为是区号+真实号码,否则是真实号码(被去掉0了)
[StrLen SR10]
[Great IR0,11]
Passed -> stJudgePhone
Failed -> stJudgeArea
:stJudgePhone
[StrSub SR10,1,1]
[SToI SR0]
[Less IR0,3]
Passed -> stEarsePhone2Bit
Failed -> stEarsePhone3Bit
:stEarsePhone2Bit
[StrSub SR10,3,30]
[Assign SR10,SR0]
-> stIfMobile
:stEarsePhone3Bit
[StrSub SR10,4,30]
[Assign SR10,SR0]
-> stIfMobile
:stIfMobile //判断是否是手机用户,如果是则预付费,否则看是南北,南:预付费;北:后付费
[StrSub SR10,1,2]
[Equal SR0,"13"]
Passed -> stVerifyPhoneCard
Failed -> stIfMobile1
:stIfMobile1
[StrSub SR10,1,3]
[Equal SR0,"013"]
Passed -> stEraseMobile1Bit
Failed -> stJudgeArea
:stEraseMobile1Bit
[StrSub SR10,2,30]
[Assign SR10,SR0]
-> stVerifyPhoneCard
:stJudgeArea
[Assign $CallerID,SR10]
[AccessFile @FeeFile,0]
Passed->stVerifyPhoneCard //预付费(针对非网通用户)
Failed->stNotCard //stVerifyPhoneLaw //后付费(针对网通用户)号码非法判断
//★★手机判断end//////////////////////////////////////////////
//★★北方号码非法判断begin///////////////////////////////////
:stVerifyPhoneLaw
[Assign SR10,$CallerID] //判断第一位是不是0,如果是则去掉0
[StrSub SR10,1,1]
[Equal SR0,"0"]
Passed -> stErasePhoneZeroNorth
Failed -> stJudgePhoneLenNorth
:stErasePhoneZeroNorth
[StrSub SR10,2,30]
[Assign SR10,SR0]
[Assign $CallerID,SR10]
->stJudgePhoneLenNorth
:stJudgePhoneLenNorth
[StrLen SR10]
[Case IR0]
Case(10) -> stNotCard
Case(11) -> stNotCard
Case -> stExit
//★★北方号码非法判断end/////////////////////////////////////
//★★号码绑定判断begin/////////////////////////////////////////
//★★号码绑定判断:是绑定则正常退出,否则进入卡认证
:stVerifyPhoneCard
[Assign $CallerID,SR10]
[ClearDTMF]
[SetDTMF "?"]
[Assign SR1,SR29]
[StrCat SR1, "v011.vox"]
[PlayFile SR1] //请选择卡的类型:九洲通卡请按1,网通橙卡请按2;
StopPlayBack -> stPhoneInputCardType
DialTerminate -> stPhoneInputCardType
Failed -> stPhoneInputCardType
:stPhoneInputCardType
[ Digit 5 ]
StopDigits('1') -> stPhoneCardType
StopDigits('2') -> stPhoneCardType
StopDigits('3') -> stCardApp
StopDigits -> stPhoneInputCardType
TimeOut -> stExit
:stPhoneCardType
[SToI SR0]
[Assign $AccountKind,IR0]
-> stVerifyPhone
:stCardApp
[DeallocMediaDevice 1]
[Assign $SMTitle,"REQUESTDATA"]
[Exec 3]
Passed -> stExit
Failed -> stExit
:stVerifyPhone
[Assign $AccountID,""]
[VerifyUser $AccountID,-1] //认证卡号为空表示号码绑定判断
Verify(0) -> stBack //号码绑定
Verify(108) -> stPhoneNotMoney //卡余额不足
Verify(141) -> stPhoneNotActive //卡号未激活
Verify(142) -> stPhoneUsed //卡正在使用
Verify(143) -> stPhoneExpDate //卡过有效期
Verify(144) -> stPhoneBlackList //卡上黑名单
Verify(145) -> stPhoneNotMoney //卡余额达到限额
Verify(146) -> stPhoneNotUsed //卡不允许使用
Verify(149) -> stBeginVerifyCard //号码未绑定
Verify -> stExit //意外判断
Failed -> stExit //意外判断
:stPhoneNotMoney
[SetDTMF "?"]
[Assign SR1,SR29]
[StrCat SR1, "v023.vox"]
[PlayFile SR1] //您的卡号余额不足,谢谢使用,再见;
StopPlayBack -> stExit
DialTerminate -> stExit
Failed -> stExit
:stPhoneNotActive
[SetDTMF "?"]
[Assign SR1,SR29]
[StrCat SR1, "v024.vox"]
[PlayFile SR1] //您的卡号未激活,谢谢使用,再见;
StopPlayBack -> stExit
DialTerminate -> stExit
Failed -> stExit
:stPhoneUsed
[SetDTMF "?"]
[Assign SR1,SR29]
[StrCat SR1, "v025.vox"]
[PlayFile SR1] //您的卡号正在被使用,谢谢使用,再见;
StopPlayBack -> stExit
DialTerminate -> stExit
Failed -> stExit
:stPhoneExpDate
[SetDTMF "?"]
[Assign SR1,SR29]
[StrCat SR1, "v026.vox"]
[PlayFile SR1] //您的卡号已过有效期,谢谢使用,再见;
StopPlayBack -> stExit
DialTerminate -> stExit
Failed -> stExit
:stPhoneBlackList
[SetDTMF "?"]
[Assign SR1,SR29]
[StrCat SR1, "v027.vox"]
[PlayFile SR1] //您的卡号已上黑名单,谢谢使用,再见;
StopPlayBack -> stExit
DialTerminate -> stExit
Failed -> stExit
:stPhoneNotUsed
[SetDTMF "?"]
[Assign SR1,SR29]
[StrCat SR1, "v028.vox"]
[PlayFile SR1] //您的卡号不允许被使用,谢谢使用,再见;
StopPlayBack -> stExit
DialTerminate -> stExit
Failed -> stExit
//★★号码绑定判断end///////////////////////////////////////////
//★★卡认证begin///////////////////////////////////////////////
//★★卡认证:通过则正常退出,否则退出系统
:stBeginVerifyCard
[Inc IR23]
-> stPlayInputCardID
:stPlayInputCardID
[ClearDTMF]
[SetDTMF "?"]
[Assign SR1,SR29]
[StrCat SR1, "v012.vox"]
[PlayFile SR1] //请输入卡号,按#号键确认。
StopPlayBack -> stInputCardID
DialTerminate -> stInputCardID
Failed -> stInputCardID
:stInputCardID
[SetDTMF "#"]
[Input @CardLen,30]
StopDigits('#') -> stPlayInputCardPwd
StopDigits -> stBeginVerifyCard
TimeOut -> stPlayInputCardID
[ParseParam SR0,1,"#"]
[Assign $AccountID,SR0]
:stPlayInputCardPwd
[SetDTMF "?"]
[Assign SR1,SR29]
[StrCat SR1, "v013.vox"]
[PlayFile SR1] //请输入密码,按#号键确认。
StopPlayBack -> stCardInputPwd
DialTerminate -> stCardInputPwd
Failed -> stCardInputPwd
:stCardInputPwd
[SetDTMF "#"]
[Input @PWDLen,20]
StopDigits('#') -> stVerifyCard
StopDigits -> stPlayInputCardPwd
TimeOut -> stPlayInputCardPwd
[ParseParam SR0,1,"#"]
[Assign $Password,SR0]
:stVerifyCard
[VerifyUser $AccountID,-1] //认证卡号
Verify(0) -> stBack //有效卡号
Verify(108) -> stCardNotEnoughMoney //余额不足
Verify(110) -> stCardErr //卡/用户不存在
Verify(114) -> stCardErr //卡号错误
Verify(118) -> stExit //消息包异常
Verify(141) -> stCardNotActive //卡号未激活
Verify(142) -> stCardUsed //卡号正在被使用
Verify(143) -> stCardPassUsed //卡过有效期
Verify(144) -> stCardBlackList //卡上黑名单
Verify(145) -> stCardNotEnoughMoney //卡余额达到限额
Verify(146) -> stCardNotUsed //卡不允许使用
Verify(147) -> stExit //系统故障
Verify -> stExit //意外处理
Failed -> stExit //失败
:stCardNotEnoughMoney
[Less IR23,@PWDCount]
Passed -> stCardNotEnoughMoneyVox
Failed -> stPassCount //卡认证的超过输入次数
:stCardNotEnoughMoneyVox
[SetDTMF "?"]
[Assign SR1,SR29]
[StrCat SR1, "v016.vox"]
[PlayFile SR1] //您输入的卡号余额不足,请重新输入。
StopPlayBack -> stBeginVerifyCard
DialTerminate -> stBeginVerifyCard
Failed -> stBeginVerifyCard
:stCardErr
[Less IR23,@PWDCount]
Passed -> stCardErrVox
Failed -> stPassCount //卡认证的超过输入次数
:stCardErrVox
[SetDTMF "?"]
[Assign SR1,SR29]
[StrCat SR1, "v014.vox"]
[PlayFile SR1] //您输入的卡号和密码错误,请重新输入。
StopPlayBack -> stBeginVerifyCard
DialTerminate -> stBeginVerifyCard
Failed -> stBeginVerifyCard
:stCardNotActive
[Less IR23,@PWDCount]
Passed -> stCardNotActiveVox
Failed -> stPassCount //卡认证的超过输入次数
:stCardNotActiveVox
[SetDTMF "?"]
[Assign SR1,SR29]
[StrCat SR1, "v018.vox"]
[PlayFile SR1] //您输入的卡号未激活,请重新输入。
StopPlayBack -> stBeginVerifyCard
DialTerminate -> stBeginVerifyCard
Failed -> stBeginVerifyCard
:stCardUsed
[Less IR23,@PWDCount]
Passed -> stCardUsedVox
Failed -> stPassCount //卡认证的超过输入次数
:stCardUsedVox
[SetDTMF "?"]
[Assign SR1,SR29]
[StrCat SR1, "v017.vox"]
[PlayFile SR1] //您输入的卡号正在被使用,请重新输入。
StopPlayBack -> stBeginVerifyCard
DialTerminate -> stBeginVerifyCard
Failed -> stBeginVerifyCard
:stCardPassUsed
[Less IR23,@PWDCount]
Passed -> stCardPassUsedVox
Failed -> stPassCount //卡认证的超过输入次数
:stCardPassUsedVox
[SetDTMF "?"]
[Assign SR1,SR29]
[StrCat SR1, "v019.vox"]
[PlayFile SR1] //您输入的卡号正在被使用,请重新输入。
StopPlayBack -> stBeginVerifyCard
DialTerminate -> stBeginVerifyCard
Failed -> stBeginVerifyCard
:stCardBlackList
[Less IR23,@PWDCount]
Passed -> stCardBlackListVox
Failed -> stPassCount //卡认证的超过输入次数
:stCardBlackListVox
[SetDTMF "?"]
[Assign SR1,SR29]
[StrCat SR1, "v020.vox"]
[PlayFile SR1] //您输入的卡号已上黑名单,请重新输入。
StopPlayBack -> stBeginVerifyCard
DialTerminate -> stBeginVerifyCard
Failed -> stBeginVerifyCard
:stCardNotUsed
[Less IR23,@PWDCount]
Passed -> stCardNotUsedVox
Failed -> stPassCount //卡认证的超过输入次数
:stCardNotUsedVox
[SetDTMF "?"]
[Assign SR1,SR29]
[StrCat SR1, "v021.vox"]
[PlayFile SR1] //您输入的卡号不允许被使用,请重新输入。
StopPlayBack -> stBeginVerifyCard
DialTerminate -> stBeginVerifyCard
Failed -> stBeginVerifyCard
:stPassCount
[SetDTMF "?"]
[Assign SR1,SR29]
[StrCat SR1, "v015.vox"]
[PlayFile SR1] //您输入的卡号和密码错误,谢谢使用,再见。
StopPlayBack -> stExit
DialTerminate -> stExit
Failed -> stExit
//★★卡认证end////////////////////////////////////////////////
:stBack
[Assign IfCardUser,1]
[Assign IR22,0] //认证通过
-> stExit
:stNotCard
[Assign IfCardUser,0]
[Assign IR22,0]
->stExit
:stExit
[Return IR22]
}
//★★用户认证函数end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -