所有文章 > 学习各类API > 微信支付 API开放平台访问token分步指南

微信支付 API开放平台访问token分步指南

在当今数字化交易蓬勃发展的时代,微信支付API开放平台作为连接商家与消费者的桥梁,其重要性日益凸显。高效、安全的支付接口服务已成为推动业务增长和优化用户体验的核心要素。微信支付API开放平台,凭借其强大的功能和广泛的应用场景,正成为众多企业与开发者进行在线支付和交易管理的首选工具。为了帮助广大开发者快速接入并充分利用这一高效资源,本文特推出“微信支付API开放平台访问token分步指南”。通过一系列精心编排、易于跟随的步骤,我们将引导你顺利完成token的获取过程,从而解锁微信支付API的全部功能,为你的应用或服务提供安全、便捷的支付处理能力。无论你是希望优化支付流程,还是提升交易安全性,获取访问token都将是实现这些目标的重要一步。

1. 登录/注册微信支付平台

2. 开发准备

2.1. 搭建和配置开发环境

开发者应当依据自身的编程语言来构建并配置相应的开发环境。

2.2. 业务开发配置

2.2.1. 设置支付目录

1.支付授权目录说明:

  • 商户最后请求拉起微信支付收银台的页面地址我们称之为“支付目录”,例如:https://www.weixin.com/pay.php
  • 商户实际的支付目录必须和在微信支付商户平台设置的一致,否则会报错“当前页面的URL未注册:”

2.支付授权目录设置说明:

登录微信支付【商户平台->产品中心->开发配置】,设置后一般5分钟内生效。

3.支付授权目录校验规则说明:

  • 如果支付授权目录设置为顶级域名(例如:https://www.weixin.com/ ),那么只校验顶级域名,不校验后缀;
  • 如果支付授权目录设置为多级目录,就会进行全匹配,例如设置支付授权目录为https://www.weixin.com/abc/123/,则实际请求页面目录不能为https://www.weixin.com/abc/,也不能为https://www.weixin.com/abc/123/pay/,必须为https://www.weixin.com/abc/123/

2.2.2. 设置授权域名

  • 授权域名说明:开发JSAPI支付时,在JSAPI下单接口中要求必传用户OpenID,而获取OpenID则需要您在公众平台设置获取OpenID的域名,只有被设置过的域名才是一个有效的获取OpenID的域名,否则将获取失败。具体配置页如图2所示:
  • 授权域名设置说明:登录【微信公众平台->公众号设置->功能设置】

3. 快速接入

3.1. 业务流程图

重点步骤说明:

步骤3 用户下单发起支付,商户可通过JSAPI下单创建支付订单。

步骤8 商户可在微信浏览器内通过JSAPI调起支付API调起微信支付,发起支付请求。

步骤15 用户支付成功后,商户可接收到微信支付支付结果通知支付结果通知API。

步骤20 商户在没有接收到微信支付结果通知的情况下需要主动调用查询订单API查询支付结果。

3.2. API接入

文档展示了如何使用微信支付服务端 SDK 快速接入支付有礼,完成与微信支付对接的部分。

3.2.1. 【服务端】JSAPI下单

步骤说明:

用户通过商户下发的模板消息或扫描二维码在微信内进入商户网页,当用户选择相关商户购买时,商户系统先调用该接口在微信支付服务后台生成预支付交易单。

JAVA示例代码:

public void CreateOrder() throws Exception{
//请求URL
HttpPost httpPost = new HttpPost("https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi");

// 请求body参数
String reqdata = "{"
+ "\"amount\": {"
+ "\"total\": 100,"
+ "\"currency\": \"CNY\""
+ "},"
+ "\"mchid\": \"1900006891\","
+ "\"description\": \"Image形象店-深圳腾大-QQ公仔\","
+ "\"notify_url\": \"https://www.weixin.qq.com/wxpay/pay.php\","
+ "\"payer\": {"
+ "\"openid\": \"o4GgauE1lgaPsLabrYvqhVg7O8yA\"" + "},"
+ "\"out_trade_no\": \"1217752501201407033233388881\","
+ "\"goods_tag\": \"WXG\","
+ "\"appid\": \"wxdace645e0bc2c424\"" + "}";
StringEntity entity = new StringEntity(reqdata,"utf-8");
entity.setContentType("application/json");
httpPost.setEntity(entity);
httpPost.setHeader("Accept", "application/json");

//完成签名并执行请求
CloseableHttpResponse response = httpClient.execute(httpPost);
try {
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) {
System.out.println("success,return body = " + EntityUtils.toString(response.getEntity()));
} else if (statusCode == 204) {
System.out.println("success");
} else {
System.out.println("failed,resp code = " + statusCode+ ",return body = " + EntityUtils.toString(response.getEntity()));
throw new IOException("request failed");
}
} finally {
response.close();
httpClient.close();
}
}

重要入参说明:

  • out_trade_no: 商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一。
  • description: 商品描述。
  • notify_url: 支付回调通知URL,该地址必须为直接可访问的URL,不允许携带查询串。
  • total: 订单总金额,单位为分。
  • OpenID: OpenID是微信用户在AppID下的唯一用户标识(AppID不同,则获取到的OpenID就不同),可用于永久标记一个用户。OpenID获取方式请参考以下文档小程序获取OpenID、公众号获取OpenID、App获取OpenID。

4. 常见问题

Q:如何找到微信支付API

A:幂简集成是国内领先的API集成管理平台,专注于为开发者提供全面、高效、易用的API集成解决方案。幂简API平台可以通过以下两种方式找到所需API:通过关键词搜索API(例如,输入’微信支付API更容易找到结果)、或者从API hub分类页进入寻找。

Q:获取OpenID接口报“此公众号并没有这些scope的权限,错误码10005”
A:

请按以下步骤进行排查:

  1. 建议检查一下公众号的功能。比如是不是在订阅号/未认证的公众号里面尝试调用认证服务号的功能。
  2. 确认AppID是否认证过期或者AppID填写错误。
  3. 请尝试使用snsapi_userinfo的授权登录方式。

Q:JSAPI调起支付接口报“商家暂时没有此类交易权限,请联系商家客服”
A:

请按以下步骤进行排查:

  1. 请检查你的下单接口是否指定了支付用户的身份,该功能需单独开通指定身份支付权限方可使用。
  2. 请确认你使用的商户号是否有jsapi支付的权限,可登录商户平台-产品中心查看。

Q:JSAPI调起支付接口报“当前页面的URL未注册”
A:请检查下单接口中使用的商户号是否在商户平台配置了对应的支付目录,可参考“设置支付目录”章节说明。

Q:获取OpenID接口报“redirect_url域名与后台配置不一致,错误码:10003”
A:

按以下步骤进行排查:

  1. 本错误是公众号获取OpenID接口报的错误,可参考文档检查是否符合开发规范:网页授权
  2. 检查下单接口传的AppID与获取OpenID接口的AppID是否同一个(需一致)。
  3. 检查AppID对应的公众号后台,是否配置的授权域名和获取OpenID的域名一致。授权域名配置路径:【公众平台-> 设置-> 公众号设置-> 功能设置–> 网页授权域名】。

Q:微信支付API的替代品有哪些?

提供AI大模型API的服务商除了微信支付API,还有其他替代服务商也提供类似api服务,例如:

H5快捷-杉德支付H5支付-银盛支付手机网站支付-翼支付

更多竞品可以在幂简集成开放平台中找到。

Q:微信支付API这个密钥还适用于哪些api?

JSAPI下单JSAPI调起支付微信支付订单号查询订单

5.  总结

本文全面且细致地阐述了获取微信支付API开放平台访问token的完整流程,为开发者们提供了一份条理清晰、操作简便的分步指南。从初始的微信支付API开放平台账号注册,到通过严格的开发者身份验证,再到最终成功获取访问token,每一步都附有详尽的说明和明确的指引,确保开发者能够毫无障碍地完成整个流程。本文还特别提醒开发者,在成功获取访问token后,务必进行严格的可用性测试。这一步骤至关重要,它不仅能够验证token的有效性,还能确保微信支付API能够顺利集成到应用中,并发挥出最佳的性能。通过这一指南,我们旨在帮助开发者们轻松获取访问token,并将微信支付API的强大功能有效地融入到他们的应用中,从而大幅提升应用的支付处理能力和用户体验。本文为开发者们提供了一个全面、详尽且实用的指南,助力他们顺利完成微信支付API开放平台的接入,开启数字化交易的新篇章。

#你可能也喜欢这些API文章!