微信小程序卡券java_微信小程序领取卡券(java)
最近做了个领取微信卡券的小程序,看了很多文档资料以及花了很多时间才算搞定的,不过也算是好事多磨,这边记录分享一下,也算给一点提升。
一、开发前准备
1:申请微信公众号 和 微信小程序,这是两个不同的东西,都需要单独申请、不同的帐号;
2:微信公众号需要开通微信卡券的功能;
3:在微信公众号里面去绑定小程序;
4:申请微信开放平台,并将微信公众号 和 微信小程序绑定到该开放平台。(注:绑定到开发平台下的作用只是为了获取unionid,因为同一用户在 公众号 和 小程序下获得的openid是不一样的,如果公众号 和 小程序都需要领取卡券,则最好通过unionid来跟踪用户;如果你只是开发微信小程序的领取卡券,则完全可以忽略第4点,博主本人也没有去绑定到微信开放平台,感觉步骤好多,特别麻烦!)
二、开始开发
1:获取微信卡券
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1451025272
这边可以直接通过微信公众号提供的接口获取或者创建微信的卡券,此处不过多介绍,只是提一下这边要获取的access_token,网址如下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对象,由于请求次数有限制,这里使用全局静态变量保存起来
publicstaticAccessToken getToken()throwsWeixinException, JsonParseException, JsonMappingException, IOException{
if(token ==null|| token.getExpires_in()
//拼接参数
String param = "?grant_type="+ grantType +"&appid="+ appId +"&secret="+ secret;
//创建请求对象
HttpsClient http = newHttpsClient();
//调用获取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这四个参数,比较简单,在文章结尾贴代码
2:升级微信卡券
其实这个步骤也可以省略,升级微信卡券的目的是可以直接从微信卡券跳转到对应的小程序,博主就偷懒了,直接跳过了这个步骤;
不过升级卡券也比较简单,就是调用调用微信公众号的更改微信卡券接口(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:领取卡券
3.1:先获取openId
小程序端代码,通过调用wx.login获取code,再调用https://api.weixin.qq.com/sns/jscode2session接口获取openid,博主看到很多例子是直接从小程序端调用这个接口,但我事实中发现是行不通的,因为这个域名无法添加到小程序的request合法域名中,微信给的说明是不要在前端调用这个接口,需要通过后台,那没办法喽
[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
/**
* 小程序后台登录,向微信平台发送获取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();
//拼接参数
String param = "?grant_type="+ grant_type +"&appid="+ appid +"&secret="+ secret +"&js_code="+ code;
原作者: 模板之家
来自: 网络收集
文章评论0人参与
GMT+8, 2021-3-2 02:42, Processed in 0.101293 second(s), 19 queries
.
Powered by X3.4
© 2007-20120 Comsenz Inc.
微信小程序卡券java_微信小程序领取卡券(java)相关推荐
- 微信卡券 java_微信小程序领取卡券(java)
最近做了个领取微信卡券的小程序,看了很多文档资料以及花了很多时间才算搞定的,不过也算是好事多磨,这边记录分享一下,也算给一点提升. 一.开发前准备 1:申请微信公众号 和 微信小程序,这是两个不同的东 ...
- 小程序websocket java_微信小程序websocket java获取不到data
在使用java作为后台测试微信小程序时,发现: 1.后台中ServerHttpRequest request中的session是空的,前端通过wx.connectSocket传递的data也没看到. ...
- 微信小程序语音识别java_微信小程序实现语音识别功能
原标题:微信小程序实现语音识别功能 使用小程序实现语音识别功能,由于语音识别可以直接使用各厂家的API接口,并且小程序为腾讯所有,因此考虑到可能的低延时,采用了腾讯提供的免费API接口,准确讲是腾讯语 ...
- 微信授权绑定手机号 java_微信小程序获取手机号授权用户登录功能
小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写. 1.getPhoneNumber这个组件通过button来实现(别的标签无 ...
- 微信支付查询订单java_微信支付java版本之查询订单
本文实例为大家分享了微信支付订单的查询接口,供大家参考,具体内容如下 1.接口简介 2.代码实现 package com.zhrd.bussinss.platform.controller.shop; ...
- 微信刷卡 sdk java_微信支付 Java SDK
微信支付 Java SDK 对微信支付开发者文档中给出的API进行了封装. com.github.wxpay.sdk.WXPay类下提供了对应的方法: 方法名 说明microPay 刷卡支付 unif ...
- 微信上传素材 java_微信上传素材php代码
$url:微信上传媒体素材的api接口. $path_img:服务器文件的绝对路径 这里的绝对路径不是$_FILES中的临时路径,不然会报文件类型错误的异常. private function Htt ...
- 微信上传素材 java_微信素材上传(JAVA)
public String uploadMaterial(String url,InputStream sbs,String filelength,String filename, String ty ...
- 会员卡券领取 小程序_新增卡券功能在哪 微信小程序内直接领取卡券方法
微信小程序新增卡券功能在哪?怎么在微信小程序内直接领取卡券?近日,微信小程序又新增了几大功能,其中包括卡券功能.用户可以直接从小程序中领取会员卡或者优惠券了,也可以从卡包中的会员卡直达小程序,非常方便 ...
- 卡券php小程序,微信小程序领取卡券 - osc_88a08cel的个人空间 - OSCHINA - 中文开源技术交流社区...
微信小程序领取卡券 标签(空格分隔): php 开发前需要准备的工作 1 小程序和公众号要有绑定 2 小程序和该公众号要绑定到同一个开发平台下 [https://open.weixin.qq.com/ ...
最新文章
- oracle+结果拆分,ORACLE字符拆分函數返回結果集
- 在衡量MPLS性能时需要注意什么
- 宣传推广费用_企业如何做好网络推广,提高网络推广的转化率?
- 每日一皮:这个不要轻易尝试,执行有生命危险
- Visual Studio 2013 Update 2 RTM 发布
- web02--jsp数据传递
- 制作启动U盘与定制多系统启动
- 编程技能和做员工的技能——哪个更重要?
- oracle几个网络,ORACLE网络的几个重点概念
- Ubuntu apt-get和pip源更换
- 要成为物联网的paas平台,需要哪些条件做为支撑?
- linux 编译链接出错,Qt编译和链接错误
- 前端零基础 JS 教学 第六天 06 - 静态实例成员与 Date日期,包装类型,字符串方法...
- 大数据告诉你——垃圾围城,现行的垃圾分类制度,作用到底能有多大?
- 计算机基础知识考什么,我想请问下,计算机初级考试考些什么东西?
- MinIO文件服务器,从安装到使用
- plotly入门(vue项目中)
- 简单粗暴地理解动态规划
- 模电-稳压二极管原理及与反向击穿联系(书-模拟电子技术基础第五版)
- 火山小视频消重复技巧 怎么看视频md5
热门文章
- html小米秒杀倒计时,JavaScript_JQuery仿小米手机抢购页面倒计时效果,1、效果及功能说明
通过对时 - phpStudy...
- Photoshop CC(2018)安装破解
- 微信调试弹出报错信息
- ISO14443 PICC 与 PCD 调制解调方式
- 修改VSCode中.exe文件的生成位置(亲测有效)
- 天天生鲜(Python)Django项目学习资料(视频、源码)
- 海思3516A bt1120 视频输入相关总结
- 人民银行支付系统(CNAPS)和中国银联下面的跨行支付系统是一回事儿吗
- 深信服技术认证之Openstack云平台使用入门
- IEC 60335 全系列- 家用和类似用途电器 - 包含全部106份最新英文版标准文件