国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) 微信小程序 微信開(kāi)發(fā) Force.com微信開(kāi)發(fā)生成帶參數(shù)的二維碼

Force.com微信開(kāi)發(fā)生成帶參數(shù)的二維碼

Mar 03, 2017 am 09:56 AM

為了滿(mǎn)足用戶(hù)渠道推廣分析的需要,公眾平臺(tái)提供了生成帶二維碼的接口。使用該接口可以獲得多個(gè)帶不同場(chǎng)景值的二維碼,用戶(hù)掃描后,公眾號(hào)可以接收到事件推送。目前有兩種類(lèi)型的二維碼,分別是臨時(shí)二維碼和永久二維碼,前者有過(guò)期時(shí)間,最大為1800秒,但能夠生成較多數(shù)量,后者無(wú)過(guò)期時(shí)間,數(shù)量較少(目前參數(shù)只支持1到100000)。兩種二維碼分別適用于賬號(hào)綁定、用戶(hù)來(lái)源統(tǒng)計(jì)等場(chǎng)景。

用戶(hù)掃描帶場(chǎng)景值二維碼時(shí),可能推送以下兩種事件:

1. 如果用戶(hù)還未關(guān)注公眾號(hào),則用戶(hù)可以關(guān)注公眾號(hào),關(guān)注后微信會(huì)將帶場(chǎng)景值關(guān)注事件推送給開(kāi)發(fā)者(例如為特定活動(dòng)準(zhǔn)備的二維碼,與會(huì)者掃描后關(guān)注微信賬號(hào),與此同時(shí)微信賬號(hào)可以將活動(dòng)相關(guān)的信息推送給用戶(hù));

2. 如果用戶(hù)已經(jīng)關(guān)注公眾號(hào),在用戶(hù)掃描后會(huì)自動(dòng)進(jìn)入會(huì)話(huà),微信也會(huì)將帶場(chǎng)景值掃描事件推送給開(kāi)發(fā)者(上例同樣適用)。

獲取帶參數(shù)的二維碼的過(guò)程包括兩步,首先創(chuàng)建二維碼ticket,然后憑借ticket到指定URL換取二維碼。

?

創(chuàng)建二維碼ticket

每次創(chuàng)建二維碼ticket需要提供一個(gè)開(kāi)發(fā)者自行設(shè)定的參數(shù)(scene_id),分別介紹臨時(shí)二維碼和永久二維碼的創(chuàng)建二維碼ticket過(guò)程。

臨時(shí)二維碼請(qǐng)求說(shuō)明:

?http請(qǐng)求方式:?POST
?URL:??
?POST數(shù)據(jù)格式:json
?POST數(shù)據(jù)例子:{"expire_seconds":?1800,?"action_name":?"QR_SCENE",?"action_info":?{"scene":?{"scene_id":?123}}}

?

永久二維碼請(qǐng)求說(shuō)明

?http請(qǐng)求方式:?POST
?URL:??
?POST數(shù)據(jù)格式:json
?POST數(shù)據(jù)例子:{"action_name":?"QR_LIMIT_SCENE",?"action_info":?{"scene":?{"scene_id":?123}}}

?

請(qǐng)求JSON數(shù)據(jù)參數(shù)的具體說(shuō)明如下:

Force.com微信開(kāi)發(fā)生成帶參數(shù)的二維碼

正確的Json返回結(jié)果示例如下:

{"ticket":"gQH47joAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL2taZ2Z3TVRtNzJXV1Brb3ZhYmJJAAIEZ23sUwMEmm3sUw==","expire_seconds":60,"url":"http:\/\/weixin.qq.com\/q\/kZgfwMTm72WWPkovabbI"}

?

返回Json數(shù)據(jù)的格式說(shuō)明如下:

Force.com微信開(kāi)發(fā)生成帶參數(shù)的二維碼

錯(cuò)誤的Json返回示例如下:

{"errcode":40013,"errmsg":"invalid?appid"}

?

下面我們構(gòu)造一個(gè)Visualforce Page來(lái)生成ticket。

Visualforce Page代碼如下:

<apex:page standardstylesheets="false" showHeader="false" sidebar="false" controller="WeChatQRCodeGeneratorController" >?
???<apex:form >?
??????<font face="微軟雅黑"><strong>第一步,創(chuàng)建二維碼Ticket</strong><br /><br />?
??????請(qǐng)輸入授權(quán)AccessToken:<apex:inputText size="100" value="{!accessToken}" id="accessToken"/><br /><br />?
??????<apex:commandButton value="生成創(chuàng)建二維碼Ticket"  action="{!send}" id="send"  /><br />?
??????</font>?
??</apex:form>?
??{!msg}?
</apex:page>

?

上面代碼第4行放置了一個(gè)apex:inputText控件,相當(dāng)于HTML的文本框,value的值指定了accessToken,這個(gè)必須是WeChatQRCodeGeneratorController類(lèi)里一個(gè)有Getter Setter的公開(kāi)屬性,如過(guò)該屬性有默認(rèn)值則文本框會(huì)顯示這個(gè)默認(rèn)值,如果用戶(hù)修改了文本框的內(nèi)容,accessToken屬性的值也會(huì)自動(dòng)改變。第5行放置了一個(gè)apex:commandButton控件,相當(dāng)于HTML的按鈕,點(diǎn)擊這個(gè)按鈕將觸發(fā)action處指定的方法send。最后第8行直接顯示msg變量,該變量會(huì)用來(lái)顯示微信接口返回的Json。畫(huà)面顯示效果如下:

Force.com微信開(kāi)發(fā)生成帶參數(shù)的二維碼

?

WeChatQRCodeGeneratorController類(lèi)的代碼如下:

public?class?WeChatQRCodeGeneratorController?{?
????public?String?msg?{?get;?set;?}?
????public?String?accessToken?{?get;?set;?}?
????public?void?send()?{?
????????Http?h?=?new?Http();?
????????HttpRequest?req?=?new?HttpRequest();?
????????req.setMethod('POST');?
????????req.setHeader('Accept-Encoding','gzip,deflate');?
????????req.setHeader('Content-Type','text/xml;charset=UTF-8');?
????????req.setHeader('User-Agent','Jakarta?Commons-HttpClient/3.1');?
????????
????????String?json?=?'{"expire_seconds":?1800,?"action_name":?"QR_SCENE",?"action_info":?{"scene":?{"scene_id":?12345}}}';?
????????
????????req.setBody(json);?
????????req.setEndpoint('https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token='?+?accessToken);?
????????String?bodyRes?=?'';?
????????
????????try{?
????????????HttpResponse?res?=?h.send(req);?
????????????bodyRes?=?res.getBody();?
????????}?
????????catch(System.CalloutException?e)?{?
????????????System.debug('Callout?error:?'+?e);?
????????????ApexPages.addMessage(new?ApexPages.Message(ApexPages.Severity.FATAL,?e.getMessage()));?
????????}?
????????msg?=?bodyRes;?
????}???
}

?

完成后保存代碼,輸入正確有效的Access Token,點(diǎn)擊“生成創(chuàng)建二維碼Ticket”按鈕將會(huì)得到如下圖所示的用來(lái)?yè)Q取二維碼的票據(jù)。其實(shí)返回的json里最后一個(gè)參數(shù)url的值即是二維碼的值,可以拿這個(gè)結(jié)果通過(guò)在線(xiàn)二維碼生成器生成二維碼:

Force.com微信開(kāi)發(fā)生成帶參數(shù)的二維碼

?

通過(guò)ticket換取二維碼

獲取二維碼ticket后,開(kāi)發(fā)者可用ticket換取二維碼圖片,本接口無(wú)需登錄即可調(diào)用,接口請(qǐng)求說(shuō)明如下:

?HTTP?GET請(qǐng)求(請(qǐng)使用https協(xié)議)
?https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET

?

返回說(shuō)明:
ticket正確情況下,http?返回碼是200,是一張圖片,可以直接展示或者下載。

HTTP頭(示例)如下:
Accept-Ranges:bytes
Cache-control:max-age=604800
Connection:keep-alive
Content-Length:28026
Content-Type:image/jpg
Date:Wed,?16?Oct?2013?06:37:10?GMT
Expires:Wed,?23?Oct?2013?14:37:10?+0800
Server:nginx/1.4.1

錯(cuò)誤情況下(如ticket非法)返回HTTP錯(cuò)誤碼404。

利用前面返回的票據(jù)調(diào)用該接口示例如下:

https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQH97zoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL2YweHpqY1hrX255RGdnckl0V0otAAIENIwAVAMECAcAAA==

?更多Force.com微信開(kāi)發(fā)生成帶參數(shù)的二維碼相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!



本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線(xiàn)人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門(mén)話(huà)題

Laravel 教程
1601
29
PHP教程
1502
276