小程序微信卡券

最近做的小程序項(xiàng)目需要打通微信會(huì)員卡模塊,就仔細(xì)研究了卡券這一塊,踩了很多的坑胧后,網(wǎng)上能查到的東西也是比較少,因此在這里寫(xiě)點(diǎn)東西希望能幫到需要的猿們抱环,我后臺(tái)用的是php壳快。

先貼上微信的文檔


官方第一步

第一步就是申請(qǐng)開(kāi)放平臺(tái),并綁定創(chuàng)建卡券的公眾號(hào)和你的小程序镇草,當(dāng)然公眾號(hào)和小程序都需要認(rèn)證通過(guò)


2

這里就有點(diǎn)坑了眶痰,2.1綁定開(kāi)放平臺(tái)按照官方步驟一點(diǎn)點(diǎn)來(lái)唄,基本就是掃碼確認(rèn)就可以了梯啤。

2.2中使用的卡券(cardId)必須是綁定開(kāi)放平臺(tái)之后竖伯,再行創(chuàng)建的卡券,如果先創(chuàng)建卡券在綁定開(kāi)放平臺(tái),這個(gè)卡券在小程序中是不可以調(diào)用的七婴,2.3說(shuō)到的“以小程序AppId調(diào)用添加/查看卡券JS-API祟偷,簽名參數(shù)與公眾號(hào)Addcard/Opencard JS-SDK一致;”這個(gè)小程序調(diào)用只是在.js文件中調(diào)用打厘,不用管APPId的事修肠,只是后臺(tái)處理的還是需要用公眾號(hào)的AppID;


3

第三步是設(shè)置卡券跳轉(zhuǎn)小程序的相關(guān)設(shè)置


4

這兩個(gè)參數(shù)是設(shè)置領(lǐng)取后激活會(huì)員卡跳轉(zhuǎn)的參數(shù)


5

這兩個(gè)參數(shù)是設(shè)置會(huì)員卡詳情那個(gè)位置的跳轉(zhuǎn)參數(shù)

設(shè)置這兩個(gè)參數(shù)就可以了? 再多的也沒(méi)用


6

這里是小程序.js中調(diào)用wx.addCard, wx.openCard婚惫,api接口了

下面先說(shuō)wx.addCard,接口吧


7

這里是cardExt的主要參數(shù)氛赐,這些參數(shù)需要請(qǐng)求后臺(tái)處理

參數(shù)signature是卡券的簽名,獲取卡券簽名當(dāng)然也有官方文檔的如下


8

這里的openid是對(duì)應(yīng)小程序的openid先舷,這里有個(gè)參數(shù)是api_ticket,卡券 api_ticket 是用于調(diào)用卡券相關(guān)接口的臨時(shí)票據(jù)艰管,有效期為 7200 秒,通過(guò) access_token 來(lái)獲取蒋川。這里要注意與 jsapi_ticket 區(qū)分開(kāi)來(lái)牲芋。由于獲取卡券 api_ticket 的 api 調(diào)用次數(shù)非常有限,頻繁刷新卡券 api_ticket 會(huì)導(dǎo)致 api 調(diào)用受限捺球,影響自身業(yè)務(wù)缸浦,開(kāi)發(fā)者必須在自己的服務(wù)全局緩存卡券 api_ticket 。

貼上一段獲取?jsapi_ticket的代碼

//獲取公眾號(hào)access_token

function wx_get_token() {

? ? $token = cache('access_token');

? ? if(empty($token)){

? ? ? ? $appid="**";//公眾號(hào)appid

? ? ? ? $AppSecret="***";//公眾號(hào)秘鑰

? ? ? ? $res = https_request('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$AppSecret);

? ? ? ? $res = json_decode($res, true);

? ? ? ? $token = $res['access_token'];

? ? ? ? cache('access_token',$token,7200);

? ? }

? ? ? ? return $token;

? ? }

//獲取api_ticket

function get_api_ticket(){

? ? $api_ticket = cache('api_ticket');

? ? if(empty($api_ticket)){

? ? ? ? $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=". wx_get_token()."&type=wx_card";

? ? ? ? $res = json_decode(https_request($url),TRUE);

? ? ? ? $api_ticket = $res['ticket'];

? ? ? ? cache('api_ticket',$api_ticket,7200);

? ? }

? ? return $api_ticket;

}

獲取這些參數(shù)后氮兵,其中nonce_str這個(gè) 參數(shù)不是必要的參數(shù)裂逐,如果獲取signature沒(méi)用到nonce_str,就不用返回這個(gè)參數(shù)

//獲取加密數(shù)據(jù)

? ? function get_signature($data){

????????sort($data,SORT_STRING );

????????return sha1(implode($data));

}

附上一段獲取signature的函數(shù)代碼泣栈,$data是參數(shù)組成的數(shù)組卜高。

在小程序JS中調(diào)用wx.addCard成功后返回參數(shù)

9

主要這里的接口是個(gè)數(shù)組,處理的時(shí)候注意一下南片。返回的code是加密的需要調(diào)用官方文檔的接口解密掺涛,之后就得到你的會(huì)員卡號(hào)了。

下面就是會(huì)員卡激活的問(wèn)題了疼进,這里涉及到小程序開(kāi)卡的接口薪缆;

重要的坑說(shuō)一下,如果你是自定義的code(也就是"use_custom_code"為true的時(shí)候)伞广,不能調(diào)起小程序的開(kāi)卡組件(也就是你看不到下面頁(yè)面的)拣帽。也就是只有使用系統(tǒng)的code才能調(diào)起開(kāi)卡組件


10

想調(diào)起開(kāi)卡組件的朋友往下看吧,沒(méi)興趣的可以結(jié)束了

開(kāi)卡組件官方給了四個(gè)接口嚼锄,

接口1:獲取開(kāi)卡插件參數(shù)

這個(gè)接口只有不是自定義code是才能調(diào)用成功


這是自定義code報(bào)的錯(cuò)


這是非自定義code返回的參數(shù)

注意事項(xiàng) 1.本接口返回的參數(shù)須原封不動(dòng)地填入開(kāi)卡插件接口诞外,須做urldecode操作;

這個(gè)注意事項(xiàng)不是我說(shuō)的是官方給的灾票,剛開(kāi)始看也是一臉懵逼,聲明一下 官方給的返回url參數(shù)是不對(duì)的茫虽,正確的參考上圖刊苍;返回的url參數(shù)需要先進(jìn)行urldecode操作既们,在進(jìn)行下一步處理


接口2:小程序內(nèi)打開(kāi)開(kāi)卡插件的接口

這個(gè)接口其實(shí)就是小程序的 跳轉(zhuǎn)小程序的API,看看需要的參數(shù)


11

這個(gè)APPid是官方固定的的不要改就行正什,至于extraData這個(gè)參數(shù)看下圖


12

這是官方的文檔啥纸,問(wèn)題的難點(diǎn)就是encrypt_card_id outer_str biz這幾個(gè)參數(shù)在哪獲取 記得上一步的 接口1中的返回參數(shù)URl嗎?那個(gè)參數(shù)urldecode操作后是這樣的


url解碼后

看到你想要的的參數(shù)了吧? 直接獲取就行了婴氮,傳到小程序.js中是這樣的


13

這樣操作就會(huì)出現(xiàn)圖10的頁(yè)面了

基本就到這里了斯棒,由于我做的是自定義code的,關(guān)于獲取用戶字段接口都沒(méi)用到主经,順便提醒需要用開(kāi)卡組件的荣暮,記得設(shè)置用戶開(kāi)卡時(shí)填寫(xiě)的開(kāi)卡字段。

第一次寫(xiě)文章有點(diǎn)亂罩驻,希望可以幫到你啊 有什么問(wèn)題可以留言交流

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末穗酥,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子惠遏,更是在濱河造成了極大的恐慌砾跃,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件节吮,死亡現(xiàn)場(chǎng)離奇詭異抽高,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)透绩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)翘骂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人渺贤,你說(shuō)我怎么就攤上這事雏胃。” “怎么了志鞍?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵瞭亮,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我固棚,道長(zhǎng)统翩,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任此洲,我火速辦了婚禮厂汗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘呜师。我一直安慰自己娶桦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著衷畦,像睡著了一般栗涂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上祈争,一...
    開(kāi)封第一講書(shū)人閱讀 52,475評(píng)論 1 312
  • 那天斤程,我揣著相機(jī)與錄音,去河邊找鬼菩混。 笑死忿墅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的沮峡。 我是一名探鬼主播疚脐,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼帖烘!你這毒婦竟也來(lái)了亮曹?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤秘症,失蹤者是張志新(化名)和其女友劉穎照卦,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體乡摹,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡役耕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了聪廉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瞬痘。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖板熊,靈堂內(nèi)的尸體忽然破棺而出框全,到底是詐尸還是另有隱情,我是刑警寧澤干签,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布津辩,位于F島的核電站,受9級(jí)特大地震影響容劳,放射性物質(zhì)發(fā)生泄漏喘沿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一竭贩、第九天 我趴在偏房一處隱蔽的房頂上張望蚜印。 院中可真熱鬧,春花似錦留量、人聲如沸窄赋。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)寝凌。三九已至柒傻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間较木,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工青柄, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留伐债,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓致开,卻偏偏與公主長(zhǎng)得像峰锁,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子双戳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容