聊一聊卡卷簽名的那些坑

最近在做小程序卡卷,真是一個(gè)接一個(gè)的坑胖烛,不僅網(wǎng)上的資料不多眼姐,官方文檔更是混亂,搞了好幾天才搞定佩番,這里說說過程中遇到的坑众旗,基本上這些坑90%都出在簽名上。

卡卷簽名主要用到以下幾個(gè)參數(shù):

  • api_ticket (調(diào)用卡券相關(guān)接口的臨時(shí)票據(jù))
  • timestamp (時(shí)間戳趟畏,單位為:秒)
  • card_id (卡卷創(chuàng)建后獲得的卡卷ID)
  • code (卡券code碼贡歧,相當(dāng)于用戶領(lǐng)取的那張卡卷的卡卷號)
  • openid (指定領(lǐng)取用戶的opeind)
  • nonce_str (32位隨機(jī)字符串)

因?yàn)槲沂窃谖⑿殴娖脚_(tái)創(chuàng)建卡卷的,所以code和openid并不需要用到拱镐,所以實(shí)際參與簽名的是api_ticket艘款、timestamp持际、card_id沃琅、nonce_str這4個(gè),card_id在公眾平臺(tái)創(chuàng)建卡卷的時(shí)候就能看到蜘欲,timestamp和nonce_str這兩個(gè)時(shí)間戳和隨機(jī)數(shù)生成就不用說了很簡單益眉,這里重點(diǎn)說一下api_ticket 。

api_ticket的獲取比較麻煩姥份,我們首先需要獲取到access_token郭脂,然后再用access_token換取api_ticket

獲取access_token的接口地址是下面這個(gè):


這里重點(diǎn)來了,我就是在這里被坑了幾天澈歉,請求接口中需要我們添加appid和secret展鸡,而這里使用的是公眾號的appid和secret!0D选莹弊!公眾號的!公眾號的涡尘!重要的事情說三遍忍弛,記住是公眾號的appid而不是小程序的!?汲细疚!

另外還有一點(diǎn),就是獲取access_token的服務(wù)器地址還必須先加入公眾號的白名單川梅,不然會(huì)提示獲取不了的疯兼,在微信公眾平臺(tái)里面點(diǎn)【安全中心】就能看到IP白名單的選項(xiàng)然遏,在里面添加你服務(wù)器的ip地址,哦對了吧彪,ip白名單在啟用前要先啟用開發(fā)者密碼啦鸣,這個(gè)在【基本配置】那里,將開發(fā)者密碼啟用后来氧,Ip白名單才能添加地址诫给。

好了,正常下來應(yīng)該能獲取到access_token了啦扬,然后我們需要用它去換取api_ticket

獲取api_ticket的接口地址是下面這個(gè):


這里值得注意的是中狂,兩個(gè)接口在短時(shí)間內(nèi)頻繁調(diào)用可能會(huì)受限,所以api_ticket獲取到后要進(jìn)行緩存扑毡,避免重復(fù)調(diào)用接口胃榕,api_ticket的有效期為2個(gè)小時(shí)。

好了瞄摊,到這里簽名所用到的參數(shù)都齊了勋又,之后就是生成簽名,官方說明是這樣:


貼一下自己的代碼换帜,PHP端:

最后返回的3個(gè)參數(shù)將返回給小程序楔壤,作為wx.addCard()--cardList--cardExt的值,當(dāng)然惯驼,在賦值前我們還必須把這三個(gè)參數(shù)json序列化字符串蹲嚣,cardExt接收的是一個(gè)字符串而不是對象,那么到這里祟牲,卡卷的流程基本就是這樣了隙畜。

總結(jié)一下幾個(gè)要注意的地方:

  • 獲取access_token時(shí),使用的appid是公眾號的而非小程序的
  • 服務(wù)器ip地址需要在微信公眾平臺(tái)加入ip白名單
  • api_ticket在獲取到后要進(jìn)行緩存说贝,因?yàn)轭l繁調(diào)用接口有可能會(huì)受限议惰。
  • 小程序wx.addCard()中,cardExt參數(shù)是一個(gè)字符串而不是對象乡恕,所以要將簽名連同其他參數(shù)轉(zhuǎn)為字符串后再賦值言询。
  • cardExt字符串里的字段參數(shù)必須和參與簽名的參數(shù)一致(card_id除外,這個(gè)是寫在wx.addCard()--cardList--cardId)

基本上就是這些了几颜,最后吐槽一下官方開發(fā)文檔真夠亂的倍试,有些地方還說得不明不白!5翱蕖O叵啊!

本文作者:kauthy
原文地址:聊一聊卡卷簽名的那些坑-教程-小程序社區(qū)-微信小程序-微信小程序開發(fā)社區(qū)-小程序開發(fā)論壇-微信小程序聯(lián)盟

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市躁愿,隨后出現(xiàn)的幾起案子叛本,更是在濱河造成了極大的恐慌,老刑警劉巖彤钟,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件来候,死亡現(xiàn)場離奇詭異,居然都是意外死亡逸雹,警方通過查閱死者的電腦和手機(jī)营搅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梆砸,“玉大人转质,你說我怎么就攤上這事√溃” “怎么了休蟹?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長日矫。 經(jīng)常有香客問我赂弓,道長,這世上最難降的妖魔是什么哪轿? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任盈魁,我火速辦了婚禮,結(jié)果婚禮上缔逛,老公的妹妹穿的比我還像新娘备埃。我一直安慰自己姓惑,他們只是感情好褐奴,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著于毙,像睡著了一般敦冬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上唯沮,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天脖旱,我揣著相機(jī)與錄音,去河邊找鬼介蛉。 笑死萌庆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的币旧。 我是一名探鬼主播践险,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了巍虫?” 一聲冷哼從身側(cè)響起彭则,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎占遥,沒想到半個(gè)月后俯抖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瓦胎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年芬萍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片搔啊。...
    茶點(diǎn)故事閱讀 38,814評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡担忧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出坯癣,到底是詐尸還是另有隱情瓶盛,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布示罗,位于F島的核電站惩猫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蚜点。R本人自食惡果不足惜轧房,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望绍绘。 院中可真熱鬧奶镶,春花似錦、人聲如沸陪拘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽左刽。三九已至捺信,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間欠痴,已是汗流浹背迄靠。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留喇辽,地道東北人掌挚。 一個(gè)月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像菩咨,于是被迫代替她去往敵國和親吠式。 傳聞我的和親對象是個(gè)殘疾皇子舅世,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評論 2 351

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

  • 先引入JS 文件 this.wxShare() 在created里調(diào)用 首先登陸微信公眾號 JSSDK使用步驟 步...
    寄魚予海與你閱讀 6,681評論 1 3
  • 前言 這篇是一邊做預(yù)研一邊寫的,因?yàn)槭穷A(yù)研奇徒,所有的代碼都是在小程序中進(jìn)行的雏亚,并沒有交給后臺(tái)。 前期準(zhǔn)備 小程序內(nèi)領(lǐng)...
    dlihasa閱讀 9,732評論 5 4
  • 先說明一下我是用mpvue來寫的小程序摩钙,但是其實(shí)和小程序直接寫也差不多罢低,然后后端是使用php(直接面向過程原生寫的...
    董原愷閱讀 2,312評論 0 0
  • 最近做的小程序項(xiàng)目需要打通微信會(huì)員卡模塊,就仔細(xì)研究了卡券這一塊胖笛,踩了很多的坑网持,網(wǎng)上能查到的東西也是比較少,因此在...
    譬如朝潞閱讀 11,339評論 6 7
  • “誰愿意當(dāng)小偷啊长踊,”姑娘委屈地說功舀,“我剛來的時(shí)候被人騙了,錢包行李都丟了身弊,餓了好幾天辟汰。到后來有個(gè)人看我在坐著,就跟...
    水神小巍閱讀 237評論 1 2