最近在給福建某知名超市設(shè)計(jì)成優(yōu)惠券系統(tǒng)中,遇到了這樣一個(gè)需求。超市系統(tǒng)中會(huì)員注冊(cè)是依據(jù)手機(jī)號(hào)注冊(cè)的,那公眾號(hào)中發(fā)放優(yōu)惠券系統(tǒng)就需要實(shí)現(xiàn)微信ID和手機(jī)號(hào)的綁定,然后再跳轉(zhuǎn)到優(yōu)惠券領(lǐng)取頁面。
這里還有一個(gè)流程,原來登錄是跳轉(zhuǎn)到會(huì)員中心的,現(xiàn)在是要求直接跳轉(zhuǎn)到領(lǐng)取優(yōu)惠券頁面。
流程如下:
流程要實(shí)現(xiàn)這個(gè)流程在祺佑三層框架(貓框)中也很簡單。
會(huì)員中心入口網(wǎng)址
ctl_user.fsp?proc=usercenterhtml
Procedure usercenterhtml
Local cOpenid,lcCode,url,cTitle
*cOpenid=This.ReGetOpenId() &&如果要調(diào)用OPENID 的地方,就要執(zhí)行這個(gè)獲取openid
cWorkhtml=getwwwRootPath("")+"tmpl\usercenter.html"
cReghtml=getwwwRootPath("")+"tmpl\reg.html"
cOpenid=HttpQueryParams("openid")
If Empty(cOpenid)
This.ReGetOpenId()
Else
*寫入cookie
httpSetcookie("openid",cOpenid,Datetime()+2*3600)
This.openid=cOpenid
Endif
*--驗(yàn)證用戶openid數(shù)據(jù)表是否存在,如若存在即是已綁定
If !Empty(This.openid)
oDBSQLhelper=Newobject("MSSQLHelper","MSSQLHelper.prg")
TEXT TO lcSQLCmd NOSHOW TEXTMERGE
SELECT COUNT(*) FROM wxuser_ck WHERE wxid=?this.openid
ENDTEXT
nRow=oDBSQLhelper.GetSingle(lcSQLCmd)
If Isnull(nRow) And !Empty(oDBSQLhelper.errmsg)
Error oDBSQLhelper.errmsg
Endif
Do Case
Case nRow==0 &&沒有記錄,跳轉(zhuǎn)到登錄面
Private lcmyurl
lcmyurl="ctl_user.fsp?proc=usercenterhtml&appuser=bluesky"
cHtml=FWS_MergeFile(cReghtml) &&需要注冊(cè)
Case nRow==1
cHtml=Filetostr(cWorkhtml) &&已注冊(cè),用戶中心頁
Otherwise
Error "用戶重復(fù)注冊(cè)"
Endcase
Endif
Return cHtml
Endproc
這里面有一句值得關(guān)注lcmyurl,存放了登錄完成之后的跳轉(zhuǎn)URL
登錄頁HTML代碼
<form id="form">
<div class="weui_cells weui_cells_form">
<div class="weui_cell weui_vcode">
<div class="weui_cell_hd"><label class="weui_label"><i class="icon icon-90 f20 query-color"></i> 手機(jī)號(hào)</label></div>
<div class="weui_cell_bd weui_cell_primary">
<input id="txtphone" class="weui_input" type="tel" required pattern="[0-9]{11}" maxlength="11"placeholder="請(qǐng)輸入手機(jī)號(hào)" tips="請(qǐng)輸入手機(jī)號(hào)" notMatchTips="請(qǐng)輸入正確的手機(jī)號(hào)">
</div>
<div class="weui_cell_ft">
<i class="weui_icon_warn"></i>
<a id="btnyzm" href="javascript:;" class="weui-vcode-btn query-color">獲取驗(yàn)證碼</a>
</div>
</div>
<div class="weui_cell">
<div class="weui_cell_hd"><label class="weui_label"><i class="icon icon-71 f20 query-color"></i> 驗(yàn)證碼</label></div>
<div class="weui_cell_bd weui_cell_primary">
<input id="txtyzm" class="weui_input" type="number" required placeholder="請(qǐng)輸入驗(yàn)證碼" emptyTips="請(qǐng)輸入驗(yàn)證碼">
</div>
<div class="weui_cell_ft">
<i class="weui_icon_warn"></i>
</div>
</div>
</div>
<div class="weui_btn_area">
<a id="formSubmitBtn" href="javascript:" class="weui_btn query-bg-color">注 冊(cè)</a>
</div>
</form>
登錄按鈕綁定click事件
$("#formSubmitBtn").on("click",function(){
var cphone=$("#txtphone").val();
var yzm=$("#txtyzm").val();
$.post("ctl_user.fsp?proc=userbind&appuser=bluesky",{
phone:cphone,
code:yzm
},function(data){
console.log(data);
var odata=JSON.parse(data);
if(odata.errno!=0){
$.alert(odata.errmsg);
return;
}
$.alert("綁定成功,開始跳轉(zhuǎn)");
setTimeout(function(){
window.location.href="<%=u(lcmyurl)%>"
},3000)
})
})
這樣就可以實(shí)現(xiàn)任意的URL,先跳轉(zhuǎn)登錄頁,再跳轉(zhuǎn)目標(biāo)頁的功能了。
我發(fā)現(xiàn)有些狐友的編程水平有高有低,很多沒有經(jīng)過系統(tǒng)學(xué)習(xí),還需要打打基礎(chǔ),這里有本書,可以練習(xí)一下。
現(xiàn)在在貓框的加持下,只用DBF,也可以開發(fā)各種管理應(yīng)用,無論網(wǎng)頁、手機(jī)、還是公眾號(hào)、還是小程序。
每日一練做到了,你才能學(xué)會(huì)一個(gè)真正的技能。