微信支付实名信息小程序授权接口能力
官方文档地址:https://developers.weixin.qq.com/community/business/doc/000804439ac77080c8672c77451c0d?client=tim&ADUIN=1533578847&ADSESSION=1542695270&ADTAG=CLIENT.QQ.5591_.0&ADPUBNO=26867
一、能力背景
互联网+国家战略发布以来,各行业紧锣密鼓推进改革。其中,众多政府民生服务,例如社保查询、公积金查询提取、医疗机构挂号、公用事业缴费等均需要用户提供实名信息。此外,手机卡实名办理、火车客运实名购票、酒店实名入住等行业实名制都在推行。
基于此,为了让用户有更好的体验,让各行业的互联网+服务更顺畅,基于微信支付实名用户基础,提供微信支付实名支付账户信息授权接口。即经过用户的授权,小程序的服务提供者可以获得用户在微信支付认证的姓名以及身份证信息。
二、接入必读
名称: getRealnameAuthInfo
功能:经过用户授权,可获得用户在微信支付认证的姓名以及身份证信息(非身份证的其他证件信息暂不提供授权)
验证方式:因为需要用户主动触发才能发起获取实名信息接口,所以该功能不由 API 来调用,需用 <button> 组件的点击来触发。且需要用户输入微信支付密码验证后,方可算授权。
兼容的微信版本:iOS6.5.22及Android6.5.22 及以上版本
调用必备条件:(1)小程序appid获得内测邀请后提交资质经平台审核通过;(2)小程序开通了微信支付账号;(3)向微信支付工作人员申请证书
开放范围:现为内测邀请阶段,白名单开通。务必需按下述内容,及第三节指引,申请开通权限后再按照接口文档开发,否则无效。
开放说明:
针对小程序的业务方,小程序的主体以及类目,需要在限定的类目范围内。开展的业务也需要是国家相关法规、政策规定的需要“实名办理”的相关业务。
现阶段微信支付实名信息授权接口能力开通的类目限定包含:
政务:政府机构或事业单位
金融:银行、保险
医疗:公立医疗机构
运营商
教育:公立教育机构
交通:航空、客运、网约车、交通卡、共享交通、轨道交通、租车
旅游:酒店
物流:快递、邮政、物流
三、接口申请
满足第二节中描述的开放类目的小程序,可申请微信支付实名授权接口。请按照如下描述,进行接口申请:
提示:必须完成以下两步的描述才算申请成功。
第一步:邮件申请,开通小程序后台接口能力入口:
申请邮件请发送至腾讯工作邮箱wx_city@tencent.com。腾讯工作人员会邮件回复资料是否准确无误,并说明是否已开通小程序后台入口。
可通过通过以下路径查看是否已开通入口:通过mp.weixin.qq.com登录小程序,在设置->接口设置中,查看是否有“实名授权”的能力卡片。
邮件申请入口的资料内容如下:
微信支付实名信息授权接口内测申请表 |
||
序号 |
信息概述 |
具体信息内容 |
1 |
业务方名称 |
(服务提供方主体名称) |
2 |
使用该接口的场景和用途 |
(用户使用该接口时的场景及服务内容) |
3 |
使用该接口的小程序名称及对应appid |
(提供正式服务的小程序) |
4 |
商户号 |
(务必是小程序已绑定的商户号) |
5 |
日均调用量预估 |
(调用次数、用户数预估) |
6 |
最高并发调用量预估 |
(分钟级并发调用次数) |
7 |
日并发调用量均值预估 |
(平均分钟级并发调用次数) |
8 |
业务方产品联系人姓名、手机、邮箱 |
(请信息提供完全) |
9 |
业务方开发联系人姓名、手机、邮箱 |
(请信息提供完全) |
10 |
腾讯公司接口人姓名、邮箱 |
(若有,请填写。请信息提供完全,完整姓名和邮箱) |
第二步:线上入口申请权限:
接收到已开通线上入口的邮件回复后。可登录小程序后台,(登录mp.weixin.qq.com的小程序账号,在设置-接口能力中)完成接口权限的申请。包括:
使用类目的配置、填写相关的申请信息等。然后等待线上审核通过。
完成以上两步工作,且线上审核通过后,即可按照后续的接口文档进行开发调用。
四、接口文档
4.1使用方法及参数
使用方法为:
需要将 <button> 组件 open-type 的值设置为 getRealnameAuthInfo,当用户点击并同意之后,可以通过 bindgetRealnameAuthInfo事件回调获取到微信服务器返回的auth_token,再用auth_token调用API来获取用户加密过后的实名信息
示例:
<button open-type="getRealnameAuthInfo" bindgetrealnameauthinfo="authinfo" category-id="{{[99, 904]}}}>实名授权</button>
调用参数为:
参数 |
类型 |
说明 |
open-type |
字符串 |
getrealnameAuthinfo,指定调起实名授权接口 |
bindgetRealnameAuthInfo |
字符串 |
接口的回调函数 |
category-id |
数组 |
小程序类目,依次填入一级类目和二级类目 |
4.2获取小程序类目
本节主要描述如何获取授权小程序账号的可选类目
(1)请求方式: get(请使用https协议)
https://api.weixin.qq.com/wxa/get_category?access_token=TOKEN
(2)参数说明
access_token
(3)返回说明(正常时返回的json示例):
{
"errcode":0,
"errmsg": "ok",
"category_list" : [
{
"first_class":"工具",
"second_class":"备忘录",
"first_id":1,
"second_id":2,
}
{
"first_class":"教育",
"second_class":"学历教育",
"third_class":"高等"
"first_id":3,
"second_id":4,
"third_id":5,
}
]
}
(4)返回参数说明:
参数 说明
category_list 可填选的类目列表
first_class 一级类目名称
second_class 二级类目名称
third_class 三级类目名称
first_id
一级类目的ID编号
second_id 二级类目的ID编号
third_id 三级类目的ID编号
(5)错误码说明:
返回码 说明
-1 系统繁忙
4.3获取实名信息1说明
根据小程序返回的auth_token获取用户加密过后的实名消息
2使用方法
通过https POST请求,数据为json格式
3请求url
https://api.weixin.qq.com/cgi-bin/wxopen/getrealnameinfo?access_token={access_token}
access_token说明 详见公众号开发文档, api使用的appid必须和小程序的appid保持一致
4请求参数
参数 |
类型 |
说明 |
auth_token |
字符串 |
小程序返回的授权凭证 |
mch_id |
字符串 |
支付商户号 |
cert_serialno |
字符串 |
证书序列号(要求大写,详见第五部分) |
timestamp |
uint32 |
以秒为最小单位的unix时间戳,必须获取当前时间 |
sign |
字符串 |
请求签名,详见后面关于数据加密的文档 |
5返回参数
参数 |
类型 |
说明 |
encryted_real_name |
字符串 |
加密后的姓名,解密之后数据为GBK格式 |
encryted_credential_id |
字符串 |
加密后的证件号码 |
示例:
#!/bin/bash
TOKEN='xxxxxxxxxxxx'
URL='https://api.weixin.qq.com/cgi-bin/wxopen/getrealnameinfo'
JSON='{ "auth_token": "xxx", "mch_id": "xxx", "cert_serialno": "xxx", "timestamp": 1234444, "sign": "xxx" }'
curl "${URL}?access_token=${TOKEN}" -d ${JSON}
6返回码
返回码说明:
返回码 |
含义 |
94001 |
缺少cert_serialno参数 |
94002 |
用户未注册微信支付 |
94003 |
签名不正确 |
94004 |
用户无实名信息 |
94005 |
非法的用户token |
94006 |
appid未授权获得实名信息 |
94007 |
appid与mchid无绑定关系 |
94008 |
非法timestamp参数 |
94009 |
非法cert_serialno参数,该参数长度为40 |
94010 |
非法商户号 |
4.4数据加密文档说明
1说明
由于实名信息属于敏感数据,不能以明文数据传输,所以开发者需要用私钥对请求进行签名(sha256后base64编码).
微信支付会对用户的姓名和身份证信息用开发者的公钥加密 ,开发者可以使用私钥解密出明文. 加密的padding算法为RSA_PKCS1_PADDING
商户号、证书序列号和私钥文件的获取详见第五部分微信支付证书指引
2签名原串
cert_serialno={cert_serialno}×tamp={timestamp}
签名示例
#!/bin/bash
cert_serialno='1234567890'
timestamp=`date +%s`
private_key_file="1900006511_rsa_private_key.pem"
ori_content="cert_serialno=${cert_serialno}×tamp=${timestamp}"
echo $ori_content
sign=`echo -n $ori_content | openssl dgst -sha256 -binary -sign $private_key_file | base64 -w 0`
echo "sign: $sign"
解密示例
#!/bin/sh
encryted_real_name="BtqSM3KOyt+mDhJhyLCS9vsEoo3gTBupZHwS3i8daCyrUGxlEv+k7cE6U+9eiTo2DPNMouZnPSqv5vRERvwvm//JwkKdrV/xvSB4Ak7mJB+/t4Y4lV6gfeyggzN4xtdWoJfkgm0wa4V7oZGrpnexdwYuwyJYTMoz+87qJRwUfWAgF7U7trJ+b5DvCk9Y6KwT0N4j6PtDAk23k0zg06rTANzU3Mq1IWF7LVBcvSvR9nkNAPzcv06LQ70kxqQqVj5z+H+ERuILwBjuIQozCh6pO37Q3slz8UNnl7r48vw7uZe6be1fSDyf0hYE43n2DMpljnATQOMeJxp7nBrsvwDdPQ=="
private_key_file="1900006511_rsa_private_key.pem"
echo -n $encryted_real_name | base64 -d | openssl rsautl -decrypt -ssl -inkey $private_key_file | iconv -f gbk -t utf-8
4.5微信支付商户申请指引
敏感数据需要使用权威CA颁发的API证书来加密。 如果已经获取到了权威CA颁发的API证书,可直接使用。 未获取到的话, 可按下面的方法操作:
1证书申请或升级
登录商户平台申请或者升级到权威CA颁发的证书。
(申请指引:http://kf.qq.com/faq/161222NneAJf161222U7fARv.html
升级指引:http://kf.qq.com/faq/180824BrQnQB180824m6v2yA.html)
2查看证书序列号
登录微信支付商户平台:pay.weixin.qq.com,进入【账户中心】->【账户设置】->【API安全】,点击“查看证书”文字按钮。
点击查看证书,即可看到证书序列号。
五、案例展示
案例:粤省事小程序,实名信息登录。
粤省事小程序是广东省政务一站式服务小程序,为了给用户便捷的体验,使用了微信支付实名授权功能。一方面校验使用者的身份,一方面便捷的获取用户信息,以便为用户提供个性化的政务服务。
具体实现的效果截图如下:
微信支付实名信息小程序授权接口能力相关推荐
- 萤石微信支付对接(小程序版)
1.萤石支付简介及流程 萤石支付,是对第三方支付平台的二次封装.考虑到的目的可能有:1.合资公司的金钱交易需要走总部财务 2.二次封装对接更加容易,与第三方支付sdk的交互都由萤石平台封装完成了. 1 ...
- 微信支付 服务商特约商户小程序支付 支付参数的问题
在小程序开发中,使用特约商户进行支付遇见的几个问题,简单的归纳了一下: 服务器PPID :该参数需传输附属上绑定的微信公众号APPID mch_id:需传输服务商的商户号ID sub_appid:服务 ...
- 微擎微信支付php,微擎小程序配置微信支付教程【小程序配置微信支付】
## 准备资料 1.微信支付(本文以普通商户为列,特约商户大致相同) 2.认证小程序(非认证小程序无权限) 3.已安装好的微擎 4.已对接接入微擎的小程序 ## 对接教程 1.首先我们确保已安装好微擎 ...
- 微信支付 企业转账 小程序发红包 提现 发红包 企业支付等遇到的问题
最近公司在开发一个项目,小程序抢红包,抢到的红包用户要提现.商家需要通过微信的企业转账功能打款到微信的钱包里. 开发的时候发现有几个坑,在这里和大家分享下.首先就是微信支付的开通条件. 第一个,就是个 ...
- 新版仿微信支付生活缴费小程序源码+UniAPP内核
正文: 这是仿微信支付生活缴费微信小程序首页页面,使用 uni-app和Tailwind CSS框架制作,适配了深色模式. 程序: wwlef.lanzouq.com/iWdxI0bkl2hc 图片:
- 小程序微信支付c语言,小程序中使用微信支付
同样的通知可能会多次发送给商户系统.商户系统必须能够正确处理重复的通知.你为什么要把这个多次写入呢? 微信支付为保证回调通知触达有效性,会有保障策略,在第一次通知如果网络链路返回无法连接或者状态不明, ...
- uni-app 微信支付 uni.requestPayment小程序支付
JS代码部分 zhifu(){ //支付方法 //微信支付 // #ifdef MP-WEIXIN uni.showLoading({title: '加载中',}) uni.request({url: ...
- 微信支付php案例,小程序微信支付php案例
wx.request({ url: 'https://www.yourhost.com/weixin/WeiActivity/payJoinfee',//改成你自己的链接 header: { 'Con ...
- 移动支付开发:小程序微信支付开发测试
小程序推出邀请测试已经有一个多月,终于申请到一个内部账号,尝试了一把小程序上的微信支付.小程序虽然叫"小",但是个人感觉他的门槛并不低.(/www.zhaoweb.cn) 教育小程 ...
最新文章
- 用C#编写ActiveX控件(三) 转载
- English trip -- VC(情景课)1 D
- Fliptile (二进制压缩)
- 关于判断函数凸或凹以及最优化的问题
- 做一个好的搜索引擎有多难
- windows php sqlite,如何在Apache 2.4(Windows 7)上为PHP 5.6.14配置SQLite3?
- tor 127.0.0.1_如何创建虚荣Tor .onion网站地址
- 【原创】k8s源代码分析-----kubelet(3)ContainerGC
- POI 读取 Excel 文件(2003版本与2007版本的差异之处)
- 服务器做jsp网站教程视频,linux jsp服务器 视频教程
- React-pdf:pdf预览插件实践
- win10U盘插进电脑读不出来/不显示驱动怎么办?
- IC/FPGA系统设计的速度和面积优化
- Pixelmator Pro比肩Photoshop,专业的图像处理软件,是真的吗?
- 菜鸟的草缸 篇四:菜鸟的草缸:二氧化碳CO2
- Telegram被封禁的原因
- 用freepy一键生成中美GDP季度对比柱状图
- pygal画世界地图
- Java职责链模式详解
- PS如何给白衬衫换色
热门文章
- 21秋北京中医药大学《中药鉴定学B》平时作业6
- nyoj202 红黑树 (二叉树的左旋右旋)
- 1. Windows 10 - Node与Vue - 安装 Vue 2.x 及 3.x 框架 - 项目创建要点
- 生命诚可贵,爱情价更高,若为自由故,两者皆可抛
- Lucene入门教程(一)
- 大数据系列(hadoop) Hadoop+Zookeeper 3节点高可用集群搭建
- 瓴羊QUICKBI工具帮助企业处理数据,效率提升数倍!
- 基于android平台的云记事本软件,安卓记事本毕业论文--基于Android平台记事本的设计与实现...
- 七、微信小程序-快速回顾 ( swiper 轮播图、scroll-view 可滚动视图区域 )
- 极客早班车 - AI Insurance