最近做了个领取微信卡券的小程序,看了很多文档资料以及花了很多时间才算搞定的,不过也算是好事多磨,这边记录分享一下,也算给一点提升。

一、开发前准备

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)相关推荐

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

    最近做了个领取微信卡券的小程序,看了很多文档资料以及花了很多时间才算搞定的,不过也算是好事多磨,这边记录分享一下,也算给一点提升. 一.开发前准备 1:申请微信公众号 和 微信小程序,这是两个不同的东 ...

  2. 小程序websocket java_微信小程序websocket java获取不到data

    在使用java作为后台测试微信小程序时,发现: 1.后台中ServerHttpRequest request中的session是空的,前端通过wx.connectSocket传递的data也没看到. ...

  3. 微信小程序语音识别java_微信小程序实现语音识别功能

    原标题:微信小程序实现语音识别功能 使用小程序实现语音识别功能,由于语音识别可以直接使用各厂家的API接口,并且小程序为腾讯所有,因此考虑到可能的低延时,采用了腾讯提供的免费API接口,准确讲是腾讯语 ...

  4. 微信授权绑定手机号 java_微信小程序获取手机号授权用户登录功能

    小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写. 1.getPhoneNumber这个组件通过button来实现(别的标签无 ...

  5. 微信支付查询订单java_微信支付java版本之查询订单

    本文实例为大家分享了微信支付订单的查询接口,供大家参考,具体内容如下 1.接口简介 2.代码实现 package com.zhrd.bussinss.platform.controller.shop; ...

  6. 微信刷卡 sdk java_微信支付 Java SDK

    微信支付 Java SDK 对微信支付开发者文档中给出的API进行了封装. com.github.wxpay.sdk.WXPay类下提供了对应的方法: 方法名 说明microPay 刷卡支付 unif ...

  7. 微信上传素材 java_微信上传素材php代码

    $url:微信上传媒体素材的api接口. $path_img:服务器文件的绝对路径 这里的绝对路径不是$_FILES中的临时路径,不然会报文件类型错误的异常. private function Htt ...

  8. 微信上传素材 java_微信素材上传(JAVA)

    public String uploadMaterial(String url,InputStream sbs,String filelength,String filename, String ty ...

  9. 会员卡券领取 小程序_新增卡券功能在哪 微信小程序内直接领取卡券方法

    微信小程序新增卡券功能在哪?怎么在微信小程序内直接领取卡券?近日,微信小程序又新增了几大功能,其中包括卡券功能.用户可以直接从小程序中领取会员卡或者优惠券了,也可以从卡包中的会员卡直达小程序,非常方便 ...

  10. 卡券php小程序,微信小程序领取卡券 - osc_88a08cel的个人空间 - OSCHINA - 中文开源技术交流社区...

    微信小程序领取卡券 标签(空格分隔): php 开发前需要准备的工作 1 小程序和公众号要有绑定 2 小程序和该公众号要绑定到同一个开发平台下 [https://open.weixin.qq.com/ ...

最新文章

  1. oracle+结果拆分,ORACLE字符拆分函數返回結果集
  2. 在衡量MPLS性能时需要注意什么
  3. 宣传推广费用_企业如何做好网络推广,提高网络推广的转化率?
  4. 每日一皮:这个不要轻易尝试,执行有生命危险
  5. Visual Studio 2013 Update 2 RTM 发布
  6. web02--jsp数据传递
  7. 制作启动U盘与定制多系统启动
  8. 编程技能和做员工的技能——哪个更重要?
  9. oracle几个网络,ORACLE网络的几个重点概念
  10. Ubuntu apt-get和pip源更换
  11. 要成为物联网的paas平台,需要哪些条件做为支撑?
  12. linux 编译链接出错,Qt编译和链接错误
  13. 前端零基础 JS 教学 第六天 06 - 静态实例成员与 Date日期,包装类型,字符串方法...
  14. 大数据告诉你——垃圾围城,现行的垃圾分类制度,作用到底能有多大?
  15. 计算机基础知识考什么,我想请问下,计算机初级考试考些什么东西?
  16. MinIO文件服务器,从安装到使用
  17. plotly入门(vue项目中)
  18. 简单粗暴地理解动态规划
  19. 模电-稳压二极管原理及与反向击穿联系(书-模拟电子技术基础第五版)
  20. 火山小视频消重复技巧 怎么看视频md5

热门文章

  1. html小米秒杀倒计时,JavaScript_JQuery仿小米手机抢购页面倒计时效果,1、效果及功能说明 通过对时 - phpStudy...
  2. Photoshop CC(2018)安装破解
  3. 微信调试弹出报错信息
  4. ISO14443 PICC 与 PCD 调制解调方式
  5. 修改VSCode中.exe文件的生成位置(亲测有效)
  6. 天天生鲜(Python)Django项目学习资料(视频、源码)
  7. 海思3516A bt1120 视频输入相关总结
  8. 人民银行支付系统(CNAPS)和中国银联下面的跨行支付系统是一回事儿吗
  9. 深信服技术认证之Openstack云平台使用入门
  10. IEC 60335 全系列- 家用和类似用途电器 - 包含全部106份最新英文版标准文件