日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微信小程序卡券java_微信小程序领取卡券(java)

發(fā)布時間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信小程序卡券java_微信小程序领取卡券(java) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近做了個領(lǐng)取微信卡券的小程序,看了很多文檔資料以及花了很多時間才算搞定的,不過也算是好事多磨,這邊記錄分享一下,也算給一點提升。

一、開發(fā)前準備

1:申請微信公眾號 和 微信小程序,這是兩個不同的東西,都需要單獨申請、不同的帳號;

2:微信公眾號需要開通微信卡券的功能;

3:在微信公眾號里面去綁定小程序;

4:申請微信開放平臺,并將微信公眾號 和 微信小程序綁定到該開放平臺。(注:綁定到開發(fā)平臺下的作用只是為了獲取unionid,因為同一用戶在 公眾號 和 小程序下獲得的openid是不一樣的,如果公眾號 和 小程序都需要領(lǐng)取卡券,則最好通過unionid來跟蹤用戶;如果你只是開發(fā)微信小程序的領(lǐng)取卡券,則完全可以忽略第4點,博主本人也沒有去綁定到微信開放平臺,感覺步驟好多,特別麻煩!)

二、開始開發(fā)

1:獲取微信卡券

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1451025272

這邊可以直接通過微信公眾號提供的接口獲取或者創(chuàng)建微信的卡券,此處不過多介紹,只是提一下這邊要獲取的access_token,網(wǎng)址如下https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183,代碼直接如下:

[java]?view plaincopy

privatestaticString?grantType?="client_credential";

publicstaticString?appId?="";//微信公眾號appid

publicstaticString?secret?="";//微信公眾號密鑰

publicstaticAccessToken?token?=null;//微信公眾號的accessToken對象,由于請求次數(shù)有限制,這里使用全局靜態(tài)變量保存起來

publicstaticAccessToken?getToken()throwsWeixinException,?JsonParseException,?JsonMappingException,?IOException{

if(token?==null||?token.getExpires_in()?

//拼接參數(shù)

String?param?=?"?grant_type="+?grantType?+"&appid="+?appId?+"&secret="+?secret;

//創(chuàng)建請求對象

HttpsClient?http?=?newHttpsClient();

//調(diào)用獲取access_token接口

Response?res?=?http.get("https://api.weixin.qq.com/cgi-bin/token"+?param);

System.out.println(res.asString());

ObjectMapper?mapper?=?newObjectMapper();

token?=?mapper.readValue(res.asString(),AccessToken.class);

}

returntoken;

}

其中需要jackson和weixin4j的jar包,比較普遍,請自行下載;而AccessToken對象也比較簡單,就errcode、errmsg、access_token、expires_in這四個參數(shù),比較簡單,在文章結(jié)尾貼代碼

2:升級微信卡券

其實這個步驟也可以省略,升級微信卡券的目的是可以直接從微信卡券跳轉(zhuǎn)到對應的小程序,博主就偷懶了,直接跳過了這個步驟;

不過升級卡券也比較簡單,就是調(diào)用調(diào)用微信公眾號的更改微信卡券接口(URL:https://api.weixin.qq.com/card/update?access_token=TOKEN),添加幾個字段,可以參考微信官方文檔3.1,鏈接如下:https://mp.weixin.qq.com/cgi-bin/announce?action=getannouncement&key=1490190158&version=1&lang=zh_CN&platform=2

3:領(lǐng)取卡券

3.1:先獲取openId

小程序端代碼,通過調(diào)用wx.login獲取code,再調(diào)用https://api.weixin.qq.com/sns/jscode2session接口獲取openid,博主看到很多例子是直接從小程序端調(diào)用這個接口,但我事實中發(fā)現(xiàn)是行不通的,因為這個域名無法添加到小程序的request合法域名中,微信給的說明是不要在前端調(diào)用這個接口,需要通過后臺,那沒辦法嘍

[javascript]?view plaincopy

wx.login({

success:?function(res)?{

varservice_url?='https://???/???/weixin/api/login?code='+?res.code;//需要將服務器域名添加到小程序的request合法域名中,而且必須是https開頭

wx.request({

url:?l,

data:?{},

method:?'GET',

success:?function(res)?{

console.log(res);

if(res.data?!=null&&?res.data?!=?undefined?&&?res.data?!='')?{

wx.setStorageSync("openid",?res.data.openid);//將獲取的openid存到緩存中

}

}

});

}

});

后端java代碼

[java]?view plaincopy

/**

*?小程序后臺登錄,向微信平臺發(fā)送獲取access_token請求,并返回openId

*?@param?code

*?@return?用戶憑證

*?@throws?WeixinException

*?@throws?IOException

*?@throws?JsonMappingException

*?@throws?JsonParseException

*/

@RequestMapping("login")

@ResponseBody

publicMap?login(String?code,?HttpServletRequest?request)throwsWeixinException,?JsonParseException,?JsonMappingException,?IOException?{

if(code?==null||?code.equals(""))?{

thrownewWeixinException("invalid?null,?code?is?null.");

}

Map?ret?=?newHashMap();

//拼接參數(shù)

String?param?=?"?grant_type="+?grant_type?+"&appid="+?appid?+"&secret="+?secret?+"&js_code="+?code;

原作者: 模板之家

來自: 網(wǎng)絡收集

文章評論0人參與

GMT+8, 2021-3-2 02:42, Processed in 0.101293 second(s), 19 queries

.

Powered by X3.4

? 2007-20120 Comsenz Inc.

總結(jié)

以上是生活随笔為你收集整理的微信小程序卡券java_微信小程序领取卡券(java)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。