问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

微信支付的哪个环节会用到access

发布网友 发布时间:2022-04-29 04:14

我来回答

2个回答

懂视网 时间:2022-05-04 15:43

access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。 公众平


access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

公众平台的API调用所需的access_token的使用及生成方式说明:

1、为了保密appsecrect,第三方需要一个access_token获取和刷新的中控服务器。而其他业务逻辑服务器所使用的access_token均来自于该中控服务器,不应该各自去刷新,否则会造成access_token覆盖而影响业务;
2、目前access_token的有效期通过返回的expire_in来传达,目前是7200秒之内的值。中控服务器需要根据这个有效时间提前去刷新新access_token。在刷新过程中,中控服务器对外
输出的依然是老access_token,此时公众平台后台会保证在刷新短时间内,新老access_token都可用,这保证了第三方业务的平滑过渡; 3、access_token的有效时间可能会在未来有调整,所以中控服务器不仅需要内部定时主动刷新,还需要提供被动刷新access_token的接口,这样便于业务服务器在API调用获知access_token已超时的情况下,可以触发access_token的刷新流程。

如果第三方不使用中控服务器,而是选择各个业务逻辑点各自去刷新access_token,那么就可能会产生冲突,导致服务不稳定。

公众号可以使用AppID和AppSecret调用本接口来获取access_token。AppID和AppSecret可在微信公众平台官网-开发者中心页中获得(需要已经成为开发者,且帐号没有异常状态)。注意调用所有微信接口时均需使用https协议。

接口调用请求说明

http请求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

参数说明

参数 是否必须 说明
grant_type 获取access_token填写client_credential
appid 第三方用户唯一凭证
secret 第三方用户唯一凭证密钥,即appsecret

返回说明

正常情况下,微信会返回下述JSON数据包给公众号:

{"access_token":"ACCESS_TOKEN","expires_in":7200}
参数 说明
access_token 获取到的凭证
expires_in 凭证有效时间,单位:秒


错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):

{"errcode":40013,"errmsg":"invalid appid"}
2.代码实现

APPID,APPSECRET在公众账号中可查询

package com.zhrd.bussinss.platform.scheduled;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import com.zhrd.bussinss.platform.constants.WeiXinId;
import com.zhrd.bussinss.platform.service.AccessTokenService;

import net.sf.json.JSONObject;

@Component
@Lazy(false)
public class GetWeiXinAccessTokenScheduled {
	
	/**

	 * 获得ACCESS_TOKEN

	 * 

	 * @Title: getAccess_token

	 * @Description: 获得ACCESS_TOKEN

	 * @param @return 设定文件

	 * @return String 返回类型

	 * @throws

	 */
	
		@Autowired
		private AccessTokenService accessTokenServiceImpl;
		
		
		@Scheduled(fixedRateString = "${weixin.token.fixedRate.in.milliseconds}"
				, initialDelayString = "${weixin.token.initialDelay.in.milliseconds}")
	 public void getAccessToken() {
			
			System.out.println("====================获取token开始==============================");

	 String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="

	  + WeiXinId.APPID+ "&secret=" + WeiXinId.APPSECRET;

	 String accessToken = null;
	 String expiresIn = null;

	 try {

	  URL urlGet = new URL(url);

	  HttpURLConnection http = (HttpURLConnection) urlGet.openConnection();

	  http.setRequestMethod("GET"); // 必须是get方式请求

	  http.setRequestProperty("Content-Type",

	   "application/x-www-form-urlencoded");

	  http.setDoOutput(true);

	  http.setDoInput(true);

	  http.connect();

	  InputStream is = http.getInputStream();

	  int size = is.available();

	  byte[] jsonBytes = new byte[size];

	  is.read(jsonBytes);

	  String message = new String(jsonBytes, "UTF-8");

	  JSONObject demoJson = JSONObject.fromObject(message);

	  accessToken = demoJson.getString("access_token");
	  expiresIn = demoJson.getString("expires_in");

	  System.out.println("accessToken===="+accessToken);
	  System.out.println("expiresIn==="+expiresIn);
	  accessTokenServiceImpl.addToken(accessToken,expiresIn);
	  System.out.println("====================获取token结束==============================");

	  is.close();

	 } catch (Exception e) {

	  e.printStackTrace();

	 }

//	 return accessToken;

	 }
	
}

3.其他接口


微信jsApi支付+发送模板消息:http://blog.csdn.net/wangxuewei111/article/details/43982381


微信支付native支付+工具类:http://blog.csdn.net/wangxuewei111/article/details/43954857


微信退款申请:http://blog.csdn.net/wangxuewei111/article/details/44021035


微信关闭订单:http://blog.csdn.net/wangxuewei111/article/details/44020881


微信查询订单:http://blog.csdn.net/wangxuewei111/article/details/44037267



 




                                        

热心网友 时间:2022-05-04 12:51

1、最基本的操作就是检查各项参数正确
2、确保将测试*加入测试白名单

3、目录正确:发起授权请求的页面必须是在授权目录下的页面,而不能是存在与子目录中。否则会返回错误,android返回“System:Access_denied”,ios返回"access_control:not_allowed"
4. 在微信支付给出的PHP DEMO里面是有BUG的,本来非静态方法在DEMO里是调用的静态方法,未实例化类
5. 在JS 请求微信支付的时候参数最好自己组装为JSON格式,不然会出现莫名其妙的参数错误
6. 微信支付给出的DEMO里面没有回调处理的模块,这块代码可以参考财付通的DEMO
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抖音弹幕怎么关掉?怎么关闭抖音弹幕? 惠普LaserJet P3005D是否支持B5纸的双面打印? word打印出图片总是缺一部分怎么办-word打印图片不完整怎么解决_百度... 理想one哪里产的车辆? 抚州抚州ONE在哪里? one地址在哪里? 如何在图片上写字(如何在图片上添加文字) 网商贷为什么钱没到账 高级经济师职称怎么评 高级经济师需要评审吗 vivo手机怎么找到开发者选项 文化云怎么取消实名认证? 鸭翅怎么卤 access数据库能不能连接微信公众平台 实名认证后,怎么取消实名认证 谁有qq消息群发消息的软件 xlive.dll是什么 没有找到xlive.dll怎么回事? OPPO11.1版本hd关闭 微信怎么通过access 桂盛市民云注册为什么一直显示数据迷路桂盛市民云注册为什么一直显示数据迷路?_百度问一问 桂盛市民云怎么绑定 卤鸭翅膀是不是有毒? 桂盛市民云怎么绑定校园卡 桂盛市民云绑定校园卡时查询无数据怎么办 隔夜的鸭翅能吃吗 桂盛市民云退出后为什么再次实名验证的时候,就说该账号已注册过,反复输入都输对了,还是登不进去? 卤鸭怎么做好吃,卤鸭的吃法 取消实名认证怎么取消 卤鸭翅鸭翅上的毛会掉吗 桂盛市民云怎么解绑实名认证 怎么卤鸭翅 为什么微信不提供 access 卤鸭翅鸭掌怎么做 如何保证微信公众平台开发access vivo手机开发者选项在哪里? 微信开发怎么用access 汽车4s店销售汽车要开什么增值税发票 页面怎么获取微信的access 在4S店买车,全部办齐后,4S店要给我那些单据和东西呀 vivo开发者选项在那里 购买进口车4S店要提供的票据,发票,关单,还有些什么东西? 为什么我的vivo手机没有开发者选项 微信登录不了是个什么意思?提示serveraccessfailu 请问提车时4S店要给购买者提供哪些单据? 汽车4s店库房出库入库单打印几份 最新款vivov3智能手机开发者选项在哪里 有没有关于Access手机版的软件?? 买车、上保险、上牌等都在4S办理了,最后交付的时候都给我什么票、证、单据? 贷款买车提车时4s店会提供哪些发票单据 安卓手机上有没有能打开access数据库的程序