📄 97充值--网关.sc
字号:
[Assign SR2,"select func_verify_payinfo('"]
[StrCat SR2,ServiceId]
[StrCat SR2,"','"]
[StrCat SR2,wsChoice]
[StrCat SR2,"','"]
[StrCat SR2,$CallerID]
[StrCat SR2,"##','"]
[StrCat SR2,LocalAreaCode]
[StrCat SR2,"') from dual "]
[ExecSQL SR2] //执行SQL语句
Passed -> stJudgePayment
Failed -> stSystemError
TimeOut -> stSystemError
:stUser
[Assign SR2,"select func_verify_payinfo('"]
[StrCat SR2,ServiceId]
[StrCat SR2,"','"]
[StrCat SR2,wsChoice]
[StrCat SR2,"','"]
[StrCat SR2,$CallerID]
[StrCat SR2,"','"]
[StrCat SR2,LocalAreaCode]
[StrCat SR2,"') from dual "]
[ExecSQL SR2] //执行SQL语句
Passed -> stJudgePayment
Failed -> stSystemError
TimeOut -> stSystemError
:stSystemError
[Assign SR1,SR29]
[StrCat SR1, "v030.vox"]
[PlayFile SR1] //系统故障,谢谢使用,再见。
StopPlayBack -> stExit
DialTerminate -> stExit
Failed -> stExit
:stJudgePayment
[ParseParam FD0,1,"^"]
[Assign M_AppNO,SR0]
[ParseParam FD0,2,"^"]
[Assign M_PayMent,SR0]
[ParseParam FD0,3,"^"]
[Assign M_CallerID,SR0]
[SToF M_PayMent]
[Less FR0,999]
Passed -> stBack
Failed -> stGreatPayInfo
:stBack
[Assign IR22,0]
-> stExit
:stGreatPayInfo
[Assign IR22,2]
-> stExit
:stExit
[Return IR22]
}
//★★判断主叫号码业务合法函数end
//★★用户认证函数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----失败
//★★目前针对小额支付号码由于计费系统已经判断了号码的预/后付费,所以
//★★我们只需把号码规整到一个不带0的区号加真实号码,长度为10/11位,便于记录到数据库和封顶判断
//★★鉴于目前平台的稳定性,我们还做了south.ini文件的判断
:stWait
[Assign IR22,1]
[Assign IR23,0] //判断重输卡号次数
[Assign SR29,".\vox\"]
-> stRedirectInd
:stRedirectInd
[Equal $RedirectInd,1]
Passed -> stExit
Failed -> stFeeLimited
:stFeeLimited
[Equal FeeLimited,100]
Passed -> stUserCheckCard //是从业务限费返回的,需进行预付费验证
Failed -> stVerifyCaller //否则就是呼叫开始时的主叫认证
//★★用户从后付费走到预付费begin
:stUserCheckCard
[ClearDTMF]
[SetDTMF "?"]
[Assign SR1,SR29]
[StrCat SR1, "v029.vox"]
[PlayFile SR1] //对不起,你的号码已经达到本月信息费的限额,请改用卡消费,请选择卡的类型:九洲通卡请按1,网通橙卡请按2;申请九洲通卡请按3
StopPlayBack -> stUserCardType
DialTerminate -> stUserCardType
Failed -> stUserCardType
:stUserCardType
[ Digit 5 ]
StopDigits('1') -> stPhoneCardType
StopDigits('2') -> stPhoneCardType
StopDigits('3') -> stCardApp
StopDigits -> stUserCheckCard
TimeOut -> stExit
//★★用户从后付费走到预付费end
//★★刚进平台的判断begin
:stVerifyCaller
[Assign SR10,$CallerID]
[Assign $Password,""]
[Assign $AccountKind,0]
[Assign $Password,""]
[VerifyUser $AccountID,-1]
Verify(0) -> stIfPhoneZeroBegin
Verify(150) -> stVerifyPhoneCard
Verify(151) -> stVerifyPhoneCard
Verify(152) -> stVerifyPhoneCard
Verify -> stSystemError
Failed -> stSystemError
TimeOut -> stSystemError
//★★刚进平台的判断end
//★★规整号码begin
:stIfPhoneZeroBegin
[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 -> stVerifyPhoneLaw
:stJudgePhone
[StrSub SR10,1,1]
[SToI SR0]
[Less IR0,3]
Passed -> stEarsePhone2Bit
Failed -> stEarsePhone3Bit
:stEarsePhone2Bit
[StrSub SR10,3,30]
[Assign SR10,SR0]
-> stVerifyPhoneLaw
:stEarsePhone3Bit
[StrSub SR10,4,30]
[Assign SR10,SR0]
-> stVerifyPhoneLaw
:stVerifyPhoneLaw
[Assign $CallerID,SR10]
[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 ////长度为10位或11位是合法,其它走预付费
Case(11) -> stIfHEB
Case -> stVerifyPhoneCard
:stIfHEB
[StrSub SR10,1,3]
[SToI SR0]
[Case IR0]
Case(451) -> stNotCard
Case(411) -> stNotCard
Case -> stVerifyPhoneCard
//★★规整号码end
//★★号码绑定判断begin/////////////////////////////////////////
//★★号码绑定判断:是绑定则正常退出,否则进入卡认证
:stVerifyPhoneCard
[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 -> stSystemError //意外判断
Failed -> stSystemError //意外判断
TimeOut -> stSystemError
: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(141) -> stCardNotActive //卡号未激活
Verify(142) -> stCardUsed //卡号正在被使用
Verify(143) -> stCardPassUsed //卡过有效期
Verify(144) -> stCardBlackList //卡上黑名单
Verify(145) -> stCardNotEnoughMoney //卡余额达到限额
Verify(146) -> stCardNotUsed //卡不允许使用
Verify -> stSystemError //意外处理
Failed -> stSystemError //失败
TimeOut -> stSystemError
: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////////////////////////////////////////////////
:stSystemError
[Assign SR1,SR29]
[StrCat SR1, "v030.vox"]
[PlayFile SR1] //系统故障,谢谢使用,再见。
StopPlayBack -> stExit
DialTerminate -> stExit
Failed -> stExit
: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 + -