- 小程序用户头像昵称获取规则调整公告
调整背景在小程序内,开发者可以通过 wx.login 接口直接获取用户的 openId 与 unionId 信息,实现微信身份登录,支持开发者在多个小程序或其它应用间匿名关联同一用户。 同时,为了满足部分小程序业务中需要创建用户的昵称与头像的诉求,平台提供了 wx.getUserProfile 接口,支持在用户授权的前提下,快速使用自己的微信昵称头像。 但实践中发现有部分小程序,在用户刚打开小程序时就要求收集用户的微信昵称头像,或者在支付前等不合理路径上要求授权。如果用户拒绝授权,则无法使用小程序或相关功能。在已经获取用户的 openId 与 unionId 信息情况下,用户的微信昵称与头像并不是用户使用小程序的必要条件。为减少此类不合理的强迫授权情况,作出如下调整。 调整说明自 2022 年 10 月 25 日 24 时后(以下统称 “生效期” ),用户头像昵称获取规则将进行如下调整: 自生效期起,小程序 wx.getUserProfile 接口将被收回:生效期后发布的小程序新版本,通过 wx.getUserProfile 接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户”。生效期前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。自生效期起,插件通过 wx.getUserInfo 接口获取用户昵称头像将被收回:生效期后发布的插件新版本,通过 wx.getUserInfo 接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户”。生效期前发布的插件版本不受影响,但如果要进行版本更新则需要进行适配。通过 wx.login 与 wx.getUserInfo 接口获取 openId、unionId 能力不受影响。「头像昵称填写能力」支持获取用户头像昵称:如业务需获取用户头像昵称,可以使用「头像昵称填写能力」(基础库 2.21.2 版本开始支持),具体实践可见下方《最佳实践》。小程序 wx.getUserProfile 与插件 wx.getUserInfo 接口兼容基础库 2.21.2 以下版本的头像昵称获取需求:上述「头像昵称填写能力」从基础库 2.21.2 版本开始支持(覆盖微信 8.0.16 以上版本)。对于来自更低版本的基础库与微信客户端的访问,小程序通过 wx.getUserProfile 接口将正常返回用户头像昵称,插件通过 wx.getUserInfo 接口将返回用户头像昵称,开发者可继续使用以上能力做向下兼容。对于上述 3,wx.getUserProfile 接口、wx.getUserInfo 接口、头像昵称填写能力的基础库版本支持能力详细对比见下表: [图片] *针对低版本基础库,兼容处理可参考 兼容文档 请已使用 wx.getUserProfile 接口的小程序开发者和已使用 wx.getUserInfo 接口的插件开发者尽快适配。小游戏不受本次调整影响。 最佳实践小程序可在个人中心或设置等页面使用头像昵称填写能力让用户完善个人资料: [图片] 微信团队 2022年5月9日
05-10 - 支付接口的下单接口的签名,为什么我用工具都验证签名通过了,但是还是报错:签名错误,请检查后再试?
[图片][图片] 明明签名都用官网的软件验证过了,但是一提交又报错,我已经是严格按照文档在写代码了,感觉支付这一块的坑真的太大了
01-31 - 【微信支付新人必读】智慧的提问,快速的解答
写在开头 在技术社区里,你技术提问的解答情况,很大程度上取决于你提问的方式与解决此问题的难度。 智慧的提问就是好的提问习惯和好的提问规范的结合,它能让你事半功倍。至少在微信支付社区,它是真实成立的 如果您没有时间读完全文,请务必读完微信支付社区提问智慧 首先来看一下,微信支付社区的智慧提问法则: 微信支付社区提问智慧 好的提问习惯 如果你有以下几个提问习惯,能直接解决大部分你想问的问题~ [代码]1. 尝试在搜索框中搜索答案; 2. 尝试阅读相关官方文档以找到答案; 3. 尝试阅读FAQ以找到答案; 4. 尝试自己检查或试验以找到答案; [代码] 好的提问规范 好的提问规范,能在最快的解决让你得到最优效的解答~ [代码]请用陈述句准确描述问题 1. 标题定位到微信支付具体业务,比如:支付分、代金券、普通支付、合单支付等; 2. 50+字详细准确描述问题的症状: 3. 包含必要的错误信息、期待的结果; 4. 包含必要的截图或代码等细节; 5. 请描述已经尝试过的方法。 [代码] 如果期望得到微信支付技术支持,请参考以下模板:(有敏感信息可私信提供) [代码]1. 请求的具体API接口(提供文档地址和请求的URL): 2. 问题发生时间【必填】 3. 商户号【必填】: 4. 商户订单号【必填】: 5. 相关报错信息文案: 6. 完整的请求和返回参数以及单号: 7. 问题截图或视频: 8. 已经尝试过的方法: [代码] 如果你已做了上述事情,我们会非常乐意回答比较规范的优质提问,也会在最快的时间推送到支持组进行针对性的回答。 当然为了维持社区的内容质量,无效提问(空泛、偏离技术讨论、软文传播、推广引流等内容),我们也有有权进行删除处理。 下面跟着大家看一下通用的技术社区提问智慧,仅供参考~ 通用技术社区提问智慧 量不在多,精炼则灵 简单的将一大堆代码或数据罗列在求助信息中达不到目的。如果你有一个很大且复杂的测试样例让程序崩溃,尝试将其裁剪得越小越好。 描述问题而不是猜测 提问中描述是什么导致了问题是没用的(如果你的诊断理论是对的,或许你就不会来这儿咨询求助了?)。所以,确保只要描述问题的原始症状,而不是你的解释和理论,让社区名人或官方支持来解释和诊断。如果你认为陈述自己的猜测很重要,应清楚地说明这只是你的猜测并描述为什么它们不起作用。 错误的示范: 我在XX时遇到了YY错误,怀疑是ZZ原因,这个问题怎么解决? 智慧的提问: 我组装的电脑(电脑信息)最近在开机20分钟左右,做内核编译时频繁地报SLG11错,但在开头20分钟内从不出问题,重启动不会复位时钟,但整夜关机会。更换所有内存未解决问题,相关的典型编译会话日志附后。 按时间先后罗列问题症状 刚出问题之前发生的事情通常包含有解决问题最有效的线索。所以,问题描述中尽可能的描述在问题出现之前都做了什么。在命令行处理的情况下,有会话日志(如运行脚本工具生成的)并引用相关的若干(如 20)行记录会非常有帮助。 提问应明确 漫无边际的问题通常也被视为没有明确限制的时间无底洞。最有可能给你有用答案的人通常也是最忙的人(假如只是因为他们承担了太多工作的话),这些人对于没有止境的时间无底洞极其敏感,所以他们也倾向于不太喜欢那些漫无边际的问题。 如果你明确了想让回复者做的事(如指点方向、发送代码、检查补丁或其它),你更有可能得到有用的回复。(因为)这样可以让他们集中精力并间接地设定了他们为帮助你需要花费的时间和精力上限。 结语 提问的智慧就是一个敲门砖,它会让你了解到一个事实,为什么那些看起来很牛的人几乎从不提问,似乎他们一进入这个行业就是牛人了。不是的,他们也有问题,但是通常在提问之前就自己解决了;不是因为他们本来就懂得怎么解决,而是解决问题的经历让他们成为牛人;最终,你只会看到网络上多了一篇文章:关于解决 某某 问题的方案。 最后,祝你在微信支付开发的路上,早日晋升为大神~希望未来有一天,您也能将在社区得到的帮助回馈给更多需要帮助的“微信支付新人”。
2020-11-12 - 境外支付FAQ
(目录)1常见问题 2退款 3风控 4小程序 5普通支付(v2接口)6支付测试 7商户平台问题 8公众平台和开放平台问题 9营销和代金券 10结算、对账单和换汇 11服务器和IP 12回调和域名 13证书和秘钥 14文档和字段 15香港钱包和V3接口 16合单、代扣和分账 17报关 18刷脸 19小微商户 20入驻和子商户进件 1、常见问题 Q:香港商户默认结算币种为港币,需要添加其他的结算币种作为结算,请问怎么添加? A:现在香港商户都是固定必须走港币结算,如果要走美元或者其他币种得经过特批,然后产品这边开通相应的入口 Q:推荐关注配置方法? A:现在在商户平台可以直接配置推荐关注 Q:App秘钥是什么,修改App秘钥对交易有没有影响? A:App秘钥在获取openid的时候需要用到,如果有需要获取openid的交易还是会有影响的 Q:香港商户请求微信支付时对应的接口域名是什么? A:香港商户一般使用apihk.mch.weixin.qq.com。注意和境内的api.mch.weixin.qq.com的不同 Q:支付后推荐关注这个功能在国内钱包和香港钱包都能用吗? A: 跨境钱包已支持、香港钱包待支持 Q:商户权限处罚申诉方法? A:商户被处罚后,如对处罚有争议,可以进行申诉。1、 标准申诉流程:发送邮件到 weixinpay@tencent.com:邮件标题为【申诉/Appeal】+机构 MID+子商户 MID,邮件内容:提供商户注册资质文件、业务模式证明材料(门店照片(线下)、网站/app 截图(线上))、交易详情及凭证,交易详情及凭证说明:如果商户是调单后被处罚,则提交被调订单的交易详情及凭证。如果商户未被调单即处罚,则商户可以选近一个月内的任意三笔交易提供交易详情说明及交易凭证 Q:下单的时候报受理关系不存在? A:可以检查一下统一下单的sub mchid和机构号是否匹配 Q:境外公众号支付支持支付后跳转吗,需要配置什么关联的权限吗? A:支持,可以直接跳转不需要配置权限 Q:APP支付报特约子商户商户号未授权服务商的产品权限? A:需要线下授权,需要发邮件给对接的BD运营申请 Q:不能够正常检测到用户输入密码错误或者取消支付的信息,就报空指针异常了是什么原因? A:输入密码错误无法检测是商户key错了 Q:微信支付时,能设置只能用某一类的卡才能支付的吗?就是设置一个银行卡的白名单,白名单内的银行卡或卡BIN才能支付? A:这个功能没有对外, 目前对外的只有限制信用卡 Q:服务商模式支付怎么设置支付后推荐关注的公众号头像为子商户头像? A:服务商模式支付,如果统一下单传了子商户APPID,就会显示子商户绑定的公众号账户头像。如果没有传子商户APPID,默认就显示服务商绑定的公众号账户头像 Q:不同地区的付款码有什么特征和区别? A:付款码是按照code128标准,一般是18位纯数字,15开头的一般是香港地区的 其他大部分是13开头。The WeChat barcodes are constructed with 18 numbers, with the start value of 10, 11, 12, 13, 14 or 15. Barcodes with 10-14 are for the China mainland users, while barcodes with 15 are for the China Hong Kong users, who cannot use WeChat cross-border pay Q:申请绑定主体不一致的APPID(限定资格开放),这种情况说限定资格开放,哪些商户有这样的资格? A:费率千六及以上且为直连商户 公众号、小程序可以网上自助绑定,可参考以下链接:http://kf.qq.com/faq/1801116VJfua1801113QVNVz.html 其他费率或者子商户号,找运营申请 Q:刷卡支付PAYERROR原因是用户没有输入支付密码,但是用户侧为什么没有输入密码的界面? A:可能用户侧超时,导致没能拉起收银台。目前境外商户开通了卡包功能后,会成为卡包的子商户。上述情况主要会影响:在系统查单时,系统识别出它有父商户,就会带着父商户信息一起查,但实际上,大单系统里是没有这个父的,最终会导致这笔单查不出来。 解决办法:把上述两个号码列入 “不带父商户号查询”名单,就可解决 Q:APP支付输入密码的时限是多久? A:正常是2个小时 Q:怎样关闭自动提现,或者设置预留固定金额后提现? A:老资金流没有这个功能,都是前一天的交易全部自动提现。如果你想账户里留一定的金额。你也可以充值进去,因为充值的资金不会被自动提现 Q:请问下境外的appid如何能得到境内公司的微信支付授权? A:不可以绑定境内的 Q:刷卡支付用户手机的付款码的有效时间是多久呢? A:一般来说6分钟后会失效 Q:刷卡支付多久之内可以被支付? A:刷卡支付如果45s内没有支付,订单就会自动被撤销 Q:支付失效时间设置有什么规则? A:刷卡至少1分钟,其他5分钟 Q:有没有为商户公众号支付设置静态二维码的API? A:There is no such kind of direct APIs, you can generate the static qr based on a h5 page developed by you and integrate Official account payment Q:对于不同地区的商户,香港钱包和大陆钱包用户付款有什么规定呢? A:1.大陆钱包,分身份证实名用户,和非身份证(港澳回乡证,台胞证,护照)实名用户,前者可以在境内,以及任何已支持微信跨境支付的境外区域付款,后者只支持在大陆付款。2.香港钱包,都是香港实名用户,只支持在香港本地或大陆消费,其他区域都不支持。(境内商户开通香港钱包收款权限,需要找BD评估,然后找橘子申请开通) Q:商户父子授权产品权限被冻结,该如何申请恢复? A:请商户提供注册证书,说明实际业务范围,若为线上业务:请提供商户官方网址或(售卖商品链接)/APP在第三方应用市场的下载链接等;若为线下业务:请提供门店外景照片(店名、地址、悬挂于店内的注册证书需清晰可见)、店内商品陈列照片、收银台照片、第三方地图定位截图等。Please provide the merchant with the registration certificate, indicating the actual business scope. For online business, please provide the merchant's official website or (product selling link) /APP download link in the third-party application market, etc.;For offline business: please provide store location photos (store name, address, registration certificate hanging in the store should be clearly visible), store product display photos, cashier photos, third-party map location screenshots, etc. Q:查询汇率接口查到的汇率和支付页面展示的汇率是不一样的吗? A:是的,查询汇率接口返回的只是一个参考汇率,具体的汇率,还是需要以查询订单返回的汇率为准 Q:目前境外是否开放微信支付成功页面关联小程序? A:这个是需要特殊申请的,而且非常难。QA之前提供的appid是我们内部的appid,是方便你们接入刷卡支付,不适用于公众号支付 Q:服务商可以同时是子商户吗? A:不可以 Q:微信的user agent是什么? A:MicroMessenger,但user agent本身有一个风险,就是它其实并不唯一,有时候可能两个完全不相关的app可能useragent是一样的,虽然这种情况出现的几率非常非常低 Q:商户已经开通了香港钱包,双开机构商,进件的商户既可以在大陆钱包里面收单,也可以在香港钱包收单,但是实际中使用内地钱包可以成功支付,但是使用香港钱包就失败了? A:可以按照以下几点逐一检查: 1 国内商户仅直连和服务商模式下的商户支持香港钱包。 银行和机构下的子商户不支持香港钱包。 2 用户的下单接口中,传了limit_pay等参数时,且用户是香港钱包的时候,就会报这个错误,具体要看看商户的下单参数(除了limit_pay外,也有可能是合单,或者有要发票,反洗钱等特殊标记) Q:限额问题? A:通过绑定的银行卡支付的,按银行自己设定的限额为主, ——》通过绑定的银行卡支付的,根据不同用户支付的银行卡不同而不同,基本在3万元-5万元/单笔限额为主。 零钱支付限额另外有相关的文档可以参考 Q:境外可以申请渠道号吗? A:暂时还没开放 2、退款 Q:有一笔交易要退款但商戶法务不同意签退款授权书? A:每一次都要做退款授权是不可能的,退款授权一般都是机构给子商户只授权一次权限 Q:境外退款的规则是什么,退款的有效期是多久,为什么退款会被关闭了? A:主要有两个资金池,人民币池和结算币种池,T日交易资金都在前者,T+1都会到后者且不可逆,达到结算起点,就会从后者到商户银行账户。退款都用前者即未结算的人民币的资金。如果商户的未结算人民币资金一直余额不足,超过8天没钱退款就自动关闭了 Q:退款关闭之后再发起退款需要使用什么退款单号? A:需要使用新的退款单号 Q:退款使用什么汇率? A:如果是外币标价,退款用交易日汇率,那当时给商户结算多少,退款时也就扣除多少,用户当时支付了多少,也就会返回多少; 人民币标价的情况,正向结算还是用交易日汇率,负向结算用的是退款日的汇率 Q:融合商户的退款规则是什么样的? A:融合商户有三个资金池,CNY收款资金池,港币收款资金池,结算资金池,大陆用户的交易T日进CNY收款池,香港钱包的用户直接进港币收款池,T+1日全部进结算资金池。如果T+1日做退款,需要对应的收款资金池里有新进的交易资金,比如大陆人退款,就要求CNY收款池有资金,香港人退款,就要求港币收款池有资金,但是注意这里不能使用结算池的资金用作香港用户的退款 Q:境外商户支持商户平台余额退款吗? A:支持。只要有人民币资金,就可以在商户平台退款 Q:非交易日当天发起的退款,系统在什么时候发起处理? A: 如果不是交易日当天的退款,在当天中午12点以前发起的退款系统都会在中午12点后再处理 Q:境外退款的资金是用机构还是用子商户的资金来退呢? A:以机构的维度,资金池从来不会以子商户做划分,都是机构层级的 Q:Query Order API发起request时、trade_status是・NOTPAY ・CLOSED ・REVOKED ・PAYERROR时、都作为失败处理、没有再实施Revoke Order API的必要了对吗? A:所有的交易都要完成闭环,最终状态保证为close或revoke,也就是必须对刷卡订单调撤销,其他支付订单调关闭 Q:退款报交易未结算资金不足? A:退款只能使用当天商户平台的所有交易的特定该币种的订单的总资金,而且需要原路退回,用户支付的是港币退款也需要用港币 用户支付的是人民币退款也需要用人民币,你们累加一下今天商户平台该币种所有的交易的总资金看看是否满足退款所需金额 Q:申请退款报金额错误? A:可以检查一下申请退款的金额兑换为结算币种的金额后是否满足结算币种的最小单位,比如说订单金额是1CNY,退款金额是0.04,商户结算币种是AUD,0.04CNY兑换成AUD后不足0.01AUD,所以这里会报金额错误 Q:香港商户按照港币标价的订单退款的时候怎么计算汇率? A:港币标价是我们承担汇损,商户测和用户侧都是按比例退,没有汇差。需要退多少HKD订单金额,就按照比例退多少CNY给用户 Q:退款发起通知是通过什么接口配置的呢? A:这是我们默认带的服务,不需要配置 Q:由于余额不足导致的退款单关闭后,原单重试不成功怎么办? A:现在是关单时没有修改退款的幂等(商户退款单号与微信退款单号的映射)。所以部分情况下,退款关闭之后,用原来的退款单号重试是可以成功的;但是,由于余额不足导致的退款单关闭后,原单重试一定不成功。在明确退款关闭的情况下是可以更换退款单号的。通过查询订单接口确定退款已经关闭了之后,可以更换退款单号重试 3、风控 Q:你已在当前商户支付过一笔相同金额的订单,请确认是否继续支付? A:这是最近产品侧上的一个策略,重复支付提示(弹框版本) 商业支付1分钟内,同用户同商户同金额无回调和查单判断 Q:什么是疑似重复支付? A:商业支付,1分钟内 同用户同商户同金额,有回调判断 (重复支付提示:在重复支付提示的基础上,若满足无回调无查单,则出现全页面提示(否则还是弹框) 此外,预埋刷卡能力,刷卡相关报表建设OK后再规划放量) Q:同一个交易调用统一下单去分别得到qrcode,jsapi和ios/android对应的order,但是最终只会使用其中一个。这个会被当做支付成功率太低的异常支付行为来处理吗? A:同一个订单,按照不同渠道支付业务上是可以的,从订单转换率上来说肯定是有一定的影响,不过你们业务系统能够辨识并接受就可以 4、小程序 Q :小程序A获取openID,并生成支付连接,在小程序B里用这个支付连接,可以成功支付吗? A :不能实现,小程序B里一定要用自己的参数才能下单,别的小程序的参数是不能支付的 Q:小程序可以内嵌H5支付吗? A: 不可以,小程序内嵌的h5完全无法拉起支付 Q:小程序支付需要设置支付目录吗? A:不需要的,只有JSAPI支付需要设置支付目录 Q:小程序调起微信支付就闪退是什么情况? A:检查下是不是参数有问题, 可能是造成内存溢出了。小程序被封也有可能造成这个情况 Q:机构模式下小程序拉起付款码失败是什么原因? A:原因是目前还不支持机构模式 5、普通支付(V2接口) Q:境外APP支付和刷卡支付调起支付请求报系统繁忙? A:可以先检查一下统一下单中传的参数“fee_type”是否正确填写,大小写也要填对,一般只能使用大写的字母表示货币类型 Q:支付目录是如何配置的,有什么规则? A:支付目录配到二级或三级是不行的,一定要配到最后一级 支付授权目录是网站发起请求的页面所在目录,并且必须是能通过url地址访问的(与真实物理目录路径无关)。注意这个目录在注册填写时,需要精确到最细一级的且使用名称后直接加文件名,不可再增加 or 删减目录。 支付目录的设置,首先要看你支付的当前页面URL,严格区分大小写。 比如当前页面是:http://www.taidupa.com/wxpay/js_api_call.php 那么就必须填写支付授权目录为: http://www.taidupa.com/wxpay/ Q:服务商公众号支付商户没有配置支付目录,也能支付成功 ,查到服务商子商户下都没有和商户提供的支付页面url一样的支付目录,这个怎么解决? A:那可能是服务商的公众号 , 一定要配置子商户自己的 才行 (子商户的公众号支付才需要配置支付目录url 服务商的不需要配置) Q,签名错误怎么排查? A:可以按照以下几点排查: 1,参数格式大小写可能不对。 2,参数的长度也需要满足文档要求。 3,商户的key是否正确。 4,需要确认接口是否有特殊签名类型要求 Q:境外商户标价币种支持什么类型? A:支持人民币或者结算币种。每个机构号或直联商户号只能有一个结算币种 Q:APP支付报:服务商商户号未开通该产品的受理权限? A:机构模式下 子商户需要申请授权APP支付权限才行 Q:H5支付域名和JSAPI分别怎么配置,H5支付域名可以和JSAPI支付目录一样吗? A:可以相同,也可以不同,但h5支付只需要配置到域名,jsapi则是需要配置到目录 Q:支付成功返回的sub_openid与统一下单传的sub_openid不一致? A:1,传了错误的sub_openid没有报错,这个是内部历史遗留问题,后续会逐步修复 2,现阶段,商户按照文档要求,正确上传就好 3,如果商户传的字段是openid,并不是sub_openid,是强校验的 Q:APP支付报-1错误,其他原因都检查过了,还是查不出原因怎么办? A:可以使用ios调试看看,安卓的可能会有不稳定 Q:JSAPI支付QR code怎么生成? A:静态二维码需要商户基于JSAPI支付的h5页面url用随意一个生成二维码的工具或类生成 (please try to create the QR CODE based on the H5 page of the JS API payment with any tool or class on your program system.) Q:关闭订单最多可以关闭多久以前的交易呢? A:主要是未支付的订单都可以关闭 ,没严格的时间限制 Q:APP支付成功无法收到回调,改了一个回调地址就可以接收到是怎么回事? A:回调URL的设置有限制 不支持类似xxx.xxx.org.cn, 这样的三级域名。 只支持xxx.org.cn这样的二级域名 Q:境外NATIVE支付请求报系统繁忙? A:请按照以下几点检查: 1)xml格式是否正确。 2)没用的字段不传,不能传null,比如err_code_des。 3)签名出问题也会显示系统繁忙的,注意要设置完所有参数后才进行签名。 4)是否有在对应的商户平台设置扫码支付回调url Q:公众号支付报此公众号并没有这些scope的权限,错误码:10005? 你好, 请按照以几点检查:1)建议检查一下公众号的功能。比如是不是在订阅号/未认证的公众号里面尝试调用认证服务号的功能。2)微信支付认证过期或者APPID填写错误。3)请使用snsapi_userinfo的授权登录方式即可解决 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_9&index=8 6、支付测试 Q:境外支付的测试商户号是什么样的,测试商户号可以下载对账单吗? A:测试商户号是1900开头的,测试商户号不支持下载对账单,因为测试商户号没有结算功能 Q:境外的测试用户号是什么样的,有什么作用? A:测试用户号只能配合测试商户号使用 Q:小程序支付支持使用测试商户号吗? A:测试商户号不能用在小程序支付上 Q:测试的商户号账号可以登录微信支付商户平台吗? A:测试商户号不提供登录credential,无法登录商户平台 Q:测试商户号需要设置扫码支付回调url吗? A:不需要,测试商户号这个参数无效,可以不用设置 Q:这个测试商户号, 和真正的production的商户号,是不是有完全一样的支付功能权限? A:只能测试quick pay和native pay。 In-App Web-based Payment (Official Account Payment) 和 In-App Payment 不能使用。测试商户号都是多家共用的,且互不影响 Q:境外商户只有一个正式商户号,如何进行支付测试? A:可以申请一个sub_ mchid 专门用于测试 7、商户平台问题 Q:子商户的个数现在有限制吗? A:没有 Q:商户平台提示安装安全控件但是始终无法安装成功怎么办? A:You can use the Chrome browser, and do the following setting: 1:log on to: chrome://flags/#enable-nacl 2: try to find the Native Client, and change the status into Enable 8、公众平台和开放平台问题 Q:公众号文章里怎么放置公众平台外部链接? A:微信公众号文章有时候会有添加超链接的需求,这些超链接一般是公众号平台内部的链接,当然如果想要添加外部平台的链接也可以,但是会有条件限制:首先进入微信公众平台编辑页面,选中要添加超链接的文字或者图片,然后点击菜单栏中的超链接按钮; 境外的商户不支持在公众号文章中放置外部链接 Q:公众号主体支持修改吗? A:你好,账号主体不支持修改,除非符合链接中的几种特殊情况才能支持修改,http://kf.qq.com/faq/171212aAfIRb171212q2MJ7J.html 1.若符合上面链接中的特殊情况,可重新发起认证来申请修改(在认证环节提供新的主体证件等材料); 2.如果主体有工商变更证明,可在公众号后台,主体详情入口页提交材料申请纠正 Q:境外商户支持开通订阅号吗? A:不支持。根据相关政策规定,境外商户主体不支持开通订阅号相关服务 Q:已经有openid了,如何获取用户的union ID? A:可以通过授权登陆获取 Q:开放平台的app拉起小程序权限已获得,但是没有绑定选项,是怎么回事? A:这个功能调整过了,不需要app去绑定小程序。可以点详情进去看新调整后的内容 Q:一个公众号可以设置几个网络授权域名? A:目前可以设置2个 Q:公众号授权第三方如何操作? A:公众号授权第三方平台参考文档:https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/Authorization_Process_Technical_Description.html 9、营销和代金券 Q:境外可以自己创建代金券吗? A:现在境外不支持自己创建活动 Q:商户怎么发券? A:只能公众号和小程序的appid去发券,不能用app的 Q:之前接口是升级到支持单品优惠退款的V2接口了,在境外使用单品优惠和指定金额退款失败,是什么问题? A:单品优惠和指定金额退款的接口, 目前还不支持境外,需要商户切换回原来版本的退款接口 10、结算 对账单和换汇 Q:怎么查询商户未结算的人民币资金是否充足? A:只能看当天的订单的人民币总金额 Q:换汇时间? A:一般在凌晨,3-9点都可能 Q:换汇的时候人民币换成外币是四舍五入吗? A:RMB转外币,不四舍五入 [图片] Q:结算给商户时间? A:日切是0点,从0点到早上10点之间出账。具体到账时间根据结算银行的处理情况,可能会有延迟。 (满足800美金等值外币起结算点后 T+1日结算银行会处理打款给商户 日切是0点 从0点到早上10点之间出账) Q:商户平台提现手续费? A:商户平台提现无需支付手续费,交易时会按照商户申请入驻时选择的类目按笔收取手续费,类目请参考:http://kf.qq.com/faq/140225MveaUz1501077rEfqI.html Q:微信支付收费方式? A:开通微信支付商户不需要付费,但通过微信商户平台交易时,微信支付会按照商户的费率按笔收取手续费。结算时扣除相应的费率再结余下的资金,结算费率计算方式可参考:http://kf.qq.com/faq/140225MveaUz1504092YFjeM.html温馨提示:充值提现、红包、企业付款到零钱等营销功能均不收取手续费 Q:手续费扣费规则,商家得到的结算外币是如何计算的? A:结算的时候扣手续费。单笔外币结算手续费,并且进行四舍五入 Q:境外支持手动提现吗? A:境外不支持手动提现。商户需要临时暂停支付或结算功能请【<a data-miniprogram-appid="d3hmNzVjZmNiYjU0MTJkYjE1" data-miniprogram-path="cGFnZXMvc3VibWl0L3N0ZXAyL3N0ZXAyLmh0bWw/YmlsbGlkPTE3MTIyMnNlbGZxYTYzZTg0ZGZjJnNjZW5lX2lkPWtmNTQ1MyZhY3Rpb25faWQ9MTU1MzY4NDc0NDEwMDc3" href=" ">点击此处</ a>】提交资料申请,提交后请在3个工作日内留意审核结果。 商户注销请【<a data-miniprogram-appid="d3hmNzVjZmNiYjU0MTJkYjE1" data-miniprogram-path="cGFnZXMvc3VibWl0L3N0ZXAyL3N0ZXAyLmh0bWw/YmlsbGlkPTE3MTIyMnNlbGZxYTFlMDEzYjVhJnNjZW5lX2lkPWtmNTQ1NCZhY3Rpb25faWQ9MTU1MzY4NDc0NDMwMDk0" href="https://kf.qq.com/touch/bill/170622selfqa9669d101.html?action_id=155368474440018">点击此处</ a>】提交资料,注销申请提交成功,不可撤销或修改。若账户内有未结算资金,注销后会将资金结算至可用余额内,请自行登录平台手动提现。温馨提示:新资金流模式商户,暂不支持注销,可关闭支付;小微商户、服务商不支持注销 Q:微信支付可不可以把商户的营业额直接付给商户?手续费单独付给日本机构? A:没办法哦,日本地区暂不支持这种模式,这是日本合规管控要求的 没法这么操作 Q:对账单是什么时候生成的? A:10点以后陆续生成昨天的账单 Q:对账单是以appid为维度还是商户号为维度? A:以商户号为维度 Q:换汇的汇率? A:换汇使用的是交易日的汇率 Q:在23点59分以后的订单有可能出现在下一天的对账单中,即临近凌晨0点的账单有时候不出现在当天的对账单中,这种情况怎么处理? A:建议增加挂账机制 Q:下单回调失败,假如查询也没收到应答的情况怎么办? A:如果确系网络问题导致交易无法正常完成,可以选择其他方式再次支付,当前支付订单通过第二天对账后,进行处理(支付成功的退款) Q:结算是否会对机构维度进行冻结? A:结算权限不会对机构进行冻结,只会对子商户进行冻结 Q:对账单接口在机构模式下,子商户号的作用是什么? A:子商户号的作用是请求特定的子商户号的所有账单,假如不传子商户号,则返回该机构下的所有子商户的对账单 11、服务器和ip Q:服务器是否可以在外国? A:目前这么搞的就adyen一家机构,因为他们是国际gateway,然后又不想在国内去租服务器。其实这样不是很稳定,毕竟国际网络环境很复杂,网络出了问题很难定位而且没法容灾。境内现在因为就两大运营商,而且有完备的容灾体系,所以如果做境内业务,最好还是服务器部署在境内,毕竟境内业务体量要大很多,对服务稳定性要求也高很多 Q: host ip是指交易中的哪个参数? A: 不是,正常请求微信支付接口,都是通过dns解析ip来访问,可以查看下你们是否绑定了固定ip来访问的 Q:香港的接入ip什么调整? A:香港的接入ip有调整,请大家知悉。 https://pay.weixin.qq.com/index.php/public/cms/content_detail?lang=zh&id=74001 Q:打算做监测,判断到微信的连接是否正常,可以掌握和追踪跟微信系接连接出现的问题。用telnet的方法去测试,每隔一分钟连一下,这样做可以吗不会被判定为危险操作吧? A:可以这样做 Q:境外的进出口IP是什么? A:Hello, team, If your request domain is apihk.mch.weixin.qq.com, the entrance IP are 203.205.234.247, 203.205.254.189. And for the exit IP, they are 101.226.103.0/25,140.207.54.0/25, 103.7.30.0/25, 203.205.219.128/25, 183.3.234.0/25,58.251.80.0/25 Entrance IP means when you request our API, the IP of our API domain. Exit IP means when we request your notification url, the exit IP we used. For api.mch.weixin.qq.com and apihk.mch.weixin.qq.com, the entrance IP are different, but we cannot provide the entrance IP for api.mch.weixin.qq.com. For the exit IP, they are all the same. Q:发到apihk的请求有比较多的超时,如何查看微信支付这边的metrics是否有什么异常? A:可以帮忙执行下这个命令,看下统计数据: for i in {1..100};do curl -so /dev/null -w "DNS_lookup:%{time_namelookup}, TCP_handshake:%{time_connect}, SSL_handshake:%{time_appconnect}, TTFB:%{time_starttransfer}, Total:%{time_total}\n" "https://apihk.mch.weixin.qq.com/pay/orderquery" ;done Q:网络出现问题,请求接口耗时比较长怎么办? A:推进安装一下网络工具进行自查,安装指引:http://kf.qq.com/product/wechatpaymentmerchant.html#hid=2857 可以看一下以下指引提高安装效率: [图片] 12、回调和域名 Q:扫码支付回调链接有什么用? A:是扫码支付模式一的回调地址,模式二在统一下单里设置,模式一在商户平台设置。 境外非直连模式不支持模式一(境外的直联商户才支持模式一,但是现在已经实行断直联) Q:小程序的业务域名在哪里配置? A:配置的地方一样,就是小程序内加载webview时开发的页面的域名,在小程序的管理平台里配置 Q:H5支付域名如何增加? A:找对接的运营申请。(为了安全起见,商户运营场景发布功能都是要在测试环境测试无误才可以发布。 该测试网站仅用于实际运营发布前的测试环节,能否单独给开通测试域名,测试成功后关掉) Q:境外网页授权域名可以设置几个? A:境内境外都是一样,可以设置2个 Q:JSAPI支付完成后是否可以实现跳转? A:可以的,可以参考https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6 Q:接口地址异常可以怎么排查? A:商户可以检查一下是否绑定了host。由于网络变更,如下接入IP需要裁撤替换的通知:https://pay.weixin.qq.com/index.php/public/cms/content_detail?lang=zh&id=45603 Q:授权报10003redirect_uri域名与后台配置不一致? A:你好, 请仔细检查公众平台配置的网页授权域名与请求的域名是否一致。 配置域名:登录微信公众平台--设置--公众号设置--功能设置--网页授权域名;也有可能是商户对网页授权域名做了两次encode导致报错 这里encode符号的规则,1:正常一次encode冒号是%3a, /是%2f 2:如果做了两次encode前者就变成%253a,后者变成%252f Q:部分商户在2月24日的回调报文出现了异常,外币标价的订单收到的回调的cash fee和total fee数值一样,回调中的total fee显示错误,不是真实外币标价的金额? A:这个问题是是内部版本问题,当天已经做了回退,问题已经修复了 Q:微信回调通知缺少微信订单号的问题? A:这里有一些特殊规则,但不便透露,可以确认是version和sign_type字段会出现在回调中,但是是非必填字段,后续我们在文档里更新一下 Q:微信回调中的通知id对同一个微信订单号是唯一的吗。对于同一笔订单,如果 重复的进行通知,这个id会变化吗? A:通知的唯一标识。x联的支付通知回调,是按微信支付单号生成的回调id,所以是不变的 Q:境外商户现在服务器在国内的是否也是建议使用apihk的那个域名呢? A:如果服务器部署在国内,就用api.mch.weixin.qq.com 13、证书和秘钥 Q:证书私钥的导出方式? A:部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供。也可以使用openssl命令来自己从p12 文件中导出 Q:已经替换了新证书,为什么API安全里还有更换服务器通讯证书的提醒? A:这只是一个提示,没有去检测商户是否有在他的服务器端成功替换旧证书 Q:如何升级证书? A:请参考文档:https://kf.qq.com/faq/180824BrQnQB180824m6v2yA.html Q:证书失效时间是什么? A:1,这里说的情况,是商户已经升级成新的证书了,已经在正常使用了,但使用后,比如说商户换了技术,遗失了新的证书,这个时候,可以在商户平台里面,点更换证书,再生成一个订书,这个时候,遗失的那个证书就会在48小时后会失效。 2,这里的情况,就是你截图中的情况,首次升级成新的版本的证书后,老的版本的API证书会在14天后失效 Q:升级为新的版本的证书后旧的证书的有效期是14天内有效是什么意思? A:申请新的证书后,商户就有两个证书了。从安全角度讲,旧的那个就没有存在得意义了。但从业务连续性讲,我们又不能将旧的证书立即作废。因此我们采用的是限制旧的API证书的有效期 Q:那证书序列号在哪里查看? A:在证书文件,apiclient_cert.pem, 用软件工具进行获取。https://myssl.com/cert_decode.html Q:升级证书时显示商户名称和登录账户不一致? A:商户那边商户名称是从商户平台复制过去的,但是平台上的复制功能只是从网页前端取得,而非从我们后台记录的商户名称取值,我们后台记录的商户实际的名称多了一个空格,所以商户在填写名称的时候报名称和登录账号不符合的错误。后续后台在比较时,连续的空白符压缩成一个空格来比较,以解决空格不匹配的错误,现在已经在优化进程中,会发版本来兼容这种问题 Q:证书验证出错? A:检查商户证书是否匹配或者已经失效 Q:使用证书工具安装证书失败,在第二部的把证书工具中的请求串复制到商户平台后,从商户平台切换到证书工具中点击next的时候,返回:“Error, please copy the correct certificate to the clipboard”? A:检查是否从商户平台把正确的请求串信息复制到了剪切板中 Q:当商户只有自签证书的时候,续期证书的方法是什么样的? A:只有自签证书的情况下,需要做更换。境外的一开始就没有自签证书,申请后让他继续申请CA证书,申请后要部署到他的服务器上面去,替换掉旧的证书 Q:证书还有好多天才到期,在平台点击续期之后,是否需要导出新证书并替换到服务器上? A:不需要,这种只需要在商户平台点击一下续期即可。可以参考文档:https://kf.qq.com/faq/161222nEB7b6161222ArMNFR.html Q:商户原来更新证书的时候没有注意保存证书文件,现在需要重新下载更新的证书,现在不用原来的电脑设备,用wxcertutil工具可以重新获取证书吗? A:可以的。 用这个链接也可以下载 https://wx.gtimg.com/mch/files/WXCertUtilEn.exe 14、文档和字段 Q:什么情况下会返回NOT ENOUGH的错误码?什么情况下返回trade error的错误码? A:如果用户是银行卡余额不足会返回Notenough; 返回trade error则是这里这种情况确实是用户没有可用的支付方式,但是这个不仅仅包括余额不足这一种情况 Q:1.7版本的文档什么时候上线的? A:更新日期2019年10月底。目前的线上文档和1.7版本是一样的 Q:使用了优惠券后,返回的cash_fee金额与total_fee有差异,报关的时候商品的价格传多少呢? A:现在建议您通过汇率和total_fee去计算哈 15、香港钱包和v3接口 Q:V3 支付成功后回调解密报文出现这个javax.crypto.AEADBadTagException: Tag mismatch!,是什么原因? A:商户回调解密key配置错误 Q:融合商户的对账单人民币港币账单展示的情况是什么样的? A:存量升级的账单2种标价的对账单和新接入的香港钱包商户的对账单都是合在一起的,都只展示港币,另外如果用户是用人民币支付的,在cash_fee字段中可以看到用户实际支付的人民币金额。新接入的香港钱包商户fee_type 标价参数都是HKD,新接入的香港钱包商户判断是否是港人用户只能看bank_type类型字段 Q:v3接口返回“PARAM_ERROR”错误,message提示header缺少微信支付平台证书序列号? A:根据错误提示,这边请求头没有进行加入平台证书的序列号,这边需要在请求头中加入wechatpay-serial参数,具体序列号的值,可以进行请求平台证书接口获取。境外的退款资金来源是待结算,而不是余额。境外的资金体系里没有余额 Q:香港钱包商户号(32开头的),交易出现 invalid appid的报错怎么解决? A:如果是纯香港钱包问题需要找一下商户对接的fit的同学查看 Q:融合商户怎么区分用户钱包是什么钱包? A:根据账单里的bank_type区分 Q:如何申请香港钱包新商户? A:申请香港融合钱包新商户账户的申请地址 https://pay.weixin.qq.com/public/wechatpay/apply_guide Q:v2的商户设置了apiv3秘钥,对v2接口的微信支付有没有影响 A:没有影响 Q:查询订单接口验证签名串是什么样的? A:待签证参数: GET /hk/v3/transactions/out-trade-no/12345678901234567?sp_mchid=104556286&sub_mchid=293024388 1560757110 1560757110128 \n Q:v3下载对账单接口验证签名规则是什么? A:按照以下格式: 时间戳\n 随机字符串\n Sha1\n \n 注意最后有2个\n Q:v2和v3版本的实时汇率是会存在差异的吗?微信V3版本接口有没有实时汇率获取API呢? A:有差异,目前v3没有汇率接口,人民币金额根据cash_fee和promotion字段内的优惠金额相加得到 Q:如何判断是否为v3接口商户? A:18年12月以后接入的,mchid和mchcode不一样的就是v3接口商户。 另外商户号和mchcode是否一致,只是用来判断该商户号是否是v3商户号,对于香港地区,如果是v3商户号,那只能使用v3接口。但香港地区老的入驻商户,商户号版本还是v2,做融合升级后,虽然商户号版本还是v2,但是内部做了特殊处理,是即可以使用v2接口也可以使用v3接口的 Q:支付一直报验证签名失败? A:情况一:如果统一下单、调起支付参数和待签名串没问题,主要就是检查证书序列号和商户私钥是否正确。可以检查一下签名原文sign_src 字段是否正确; 情况二:如果不能确定统一下单和调起支付参数是否有问题,可以通过商户的私钥生成签名,然后再利用生成的签名发起请求看看,能不能成功: :可以判断生成签名有没有用小程序的appid来生成;:可以检查调起支付参数是否正确;:记得clear一下项目缓存,有时候项目缓存可能也会导致一些问题。(signtype不影响签名,但是会导致拉起支付时存在不识别的参数值。signtype取值应为RSA,而不是SHA256withRSA。)情况三:查看商户的待签名串代码,是否换行符和报文都没有缺少 [图片] Q:v3在线文档中的wechatpay-apache-httpclient工具可以自动做应答验签吗 A:这个只是个demo,参数名都是固定的,不是适用于每个接口 [图片] 16、合单、代扣和分账 Q:国内商品和国外商品合并支付了,真正支付的时候,走的是跨境支付的接口,还是国内支付的接口呢?境外合单规则? A:合单只能走国内的商户号发起,境外商户号为被合方,但合单要求发起方合被合方的appid相同,所以境外机构模式这里还走不通 17、报关 Q:推给海关或者国检都偶尔有出现这个错误:<err_code_des><![CDATA[[132021059]您的操作已提交,请确认是否已生效? A:国检的国庆前已经暂停了,可以直接推广州总署后即可去清关 Q:报关支持什么币种? A:只支持人民币 Q:报关返回支付人与订购人不一致 但是用户反馈是一致的? A:早期存量用户预留实名为小写x,所以比对不一致,我们这边已经解决了大小写校验问题 Q: 实名信息尾数带X的报错,商户这边需要做什么,现在调用重推接口重推,然后再去清关再看看吗? A:上次报错的订单,分两种情况: 1,如商户是给我们传实名信息的话,先调用“订单附加信息提交接口 ”发修改(action_type=MODIFY)报文在微信侧比对实名一致,然后再调用重推接口重推即可 2,商户如果在昨天调用“订单附加信息提交接口”不传实名信息返回DIFFERENT的,直接调用重推接口重推即可 18、刷脸 Q:刷脸怎么申请? A:找对接的BD申请 19、小微商户 Q:小微商户的提现是什么样的,支持开通手动提现吗? A:小微都是自动提现的 20、入驻和子商户进件 Q:境内的公司需要有境外的商户号,怎么接? A:他们都要注册一个境外主体才能申请 Q:境内的服务商如何才能为境外的做停车场支付的公司接微信支付? A:需要服务商注册一个境外的主体,而且需要服务商在本地有支付牌照 Q:请问最近子商户进件接口做了什么新的变动,我们收到了一版新的报备接口? A:计划对个别地区的机构做强化进件,强化后进件子商户需要提交注册证件、门店照片、负责人的个人信息、UBO信息等。机构可以通过开放平台或API进件 Q:office_phone的长度限制是多少? A:5-25位 Q:service_phone,我这边限制的是长度5-32。 merchant_mobile_phone 手机这个字段有没有加正则校验? A:16个字符以内。contact phone字段是15位以内 Q:进件的时候的境外银行机构需要传channel id吗? A:不是必传,未来这个参数及对应的能力都可能下掉了 Q:商户平台无法进件可能是什么原因? A:有可能是商户的权限被处罚了,机构可以先查看一下自己的权限是否正常 Q:报备完成后发现除了business code外其他参数是错的,我们需不需要改,怎么改? A:建议您把其他的数据,比如商户名字,其他信息等,都修改一下就行了哈 Q:显示无法新增商户是什么原因? A:可能是这个机构的等级被降为C了 Q:当前商户需补齐相关资料后,才可进行相应的支付交易,请商户联系对接的微信支付服务商? A:要登录渠道号补齐资料,或者通过小程序进行认证。也有可能是这个原因:商户进到了“报名了激励项目的商户号”中 Q:子商户进件报签名错误? A:1、首先排查自己的商户key是否正确。(//注:key为商户平台设置的key) 2、排查完了之后,到这个网页https://pay.weixin.qq.com/wiki/doc/api/tools/sp_coupon.php?chapter=4_3 拼接请求,看是否和你代码拼接的请求是一样的
2020-11-18 - 城市服务实名信息校验接口说明
一、接口说明 城市服务实名校验接口(以下称“本接口”),主要实现的功能是,在用户同意情况下,通过微信城市服务去校验用户(或业务方)输入的实名信息,是否正确且与用户在“开通微信支付”时,预留的实名信息一致。也即,校验输入的信息,是否正确且与微信支付绑卡用户的实名信息一致。 二、使用注意事项(接入必读) 1、本接口暂只支持校验基于大陆身份证 “姓名与身份证开通微信支付”的用户实名信息; 2、由于信息较为敏感,使用此接口校验用户(或业务方)输入的实名信息时,需要在页面前端征得用户的同意。因此调用此接口后,会跳转至微信官方的“用户同意”界面。用户点击同意按钮后方可继续后续调用。 3、请根据开放范围、场景所需及信息校验必要性申请本接口,并请谨慎使用。若后期使用过程中,用户举报较多或被发现在不合理使用,微信有权永久回收该小程序的该接口的权限。 三、接口开放范围及申请方式 3.1、接口开放范围 1、本接口目前为内测邀请开放阶段,免费开放给非个人开发者,且完成了微信认证的小程序(不包含境外主体)。 2、接口的开放的场景及必要性,参考国家法规、政策规定的需要“实名办理”的相关业务。具体的开放主体类目范围如下: 政务(政府和事业单位)公立医疗(含公立医疗机构的互联网医院)公立教育机构交通行业的官方企业或单位(含:航空公司、机场、客运、交通市民卡、铁路、公交、地铁、轮渡)基础运营商合规的保险公司官方快递与邮政(实名校验场景需要与支付相关联)水、电、燃、暖等官方生活缴费机构;如你的小程序主体类目所属范围、支付业务场景等,与上述相符,则可以按照对应方式申请。 3.2、申请方式 请发送邮件至官方邮箱,说明所需的场景及校验必要性,申请开通小程序的该接口的权限。官方邮箱地址:wx_city@tencent.com。邮件内容请参照下述列表: 邮件主题:申请开通“城市服务实名信息校验”接口权限+地区+单位名称 邮件内容: 1、小程序appid或原始id 2、小程序名称 3、小程序使用该接口的场景及必要性描述。 4、其他备注说明(如紧急程度、腾讯公司的对接人等) 申请资料: 1、接口申请表 2、与申请商户名称(商户号主体)完全一致的 信息系统安全等级保护三级证书(简称等保三级证书) 或者 ISO27001证的扫描件 3、签署【数据安全评估应答及承诺文件】,落款应答及承诺人为商户号主体,并盖章 4、签署【合作协议】 附:申请资料中(2)(3)(4)涉及资质,申请主体均需由商户号主体提供、签署;(3)(4),审批时请先提供填写完整的Word文档,待审批完成后再返回盖章。 附件1、微信支付实名校验接口申请表 附件2、数据安全评估应答及承诺文件 附件3、合作协议 邮件申请后,针对符合开放范围及场景必要性的小程序,会提供后续流程指引,因此申请后请留意邮件回复情况。 注意:请根据开放范围、场景所需及信息校验必要性申请本接口,并请谨慎使用。若后期使用过程中,用户举报较多或被发现在不合理使用,微信有权永久回收该小程序的该接口的权限。 四、接口文档 具体的接口文档详情,请点击此处查看详细的接口文档,并参照开发。 备注:如在使用中遇到问题,可通过官方邮箱留言,或社区留言,或评论留言方式反馈。本指引内容不定期更新,敬请留意。
04-12 - 关于收回小程序"用户实名信息授权"接口的相关说明
各位开发者: 保护用户信息一直是平台极重视的工作,因此平台会持续对涉及用户信息的接口规则进行调整、优化。近期根据用户投诉反馈建议,及监管合规指导,结合业务方的使用情况分析,需回收小程序“用户实名信息授权”接口(以下称“本接口”,接口介绍地址可点击此处了解),以进一步提升用户使用的安全体验,并计划于2020年05月31日下线本接口。 一、具体的回收下线计划如下,请各小程序开发者尽快调整方案: 1、目前已不再支持小程序申请和接入本接口; 2、以往已经接入了本接口的小程序,如无相关业务场景或需求,不再使用本接口:请在即日起的两个月内,停止接口调用。两个月后平台将关闭本接口权限,及小程序https://mp.weixin.qq.com/后台的申请入口。 3、以往已经接入了本接口的小程序,但依然有业务场景有相关需求,平台侧建设了替代接口方案——实名信息校验接口,提供给满足一定条件的业务方。请需要对接的小程序开发者,在两个月内接入替代接口。两个月后平台将关闭本接口权限,及小程序https://mp.weixin.qq.com/后台的申请入口。同时,平台还有地址组件、快速填写等推荐接口可配套使用,支持相关需求。 二、相关推荐接口简介: 1、实名信息校验接口。 本接口可实现:在用户同意情况下,校验用户(或业务方)输入的实名信息是否正确(仅支持身份证信息)。详述如下: 对于接入微信城市服务的业务,或满足以下地址中的文档说明的范围,可以申请城市服务实名信息校验接口。申请方式地址: https://developers.weixin.qq.com/community/business/doc/000e06614ac74068f3d9237eb5440d 接口文档地址: https://developers.weixin.qq.com/miniprogram/dev/framework/cityservice/cityservice-checkrealnameinfo.html 2、地址组件接口。 本接口可实现:拉起微信原生的地址选择及编辑界面,可以编辑已有地址,也可以在编辑完成后,返回用户选择的地址。 接口文档地址为:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/address/wx.chooseAddress.html 可以参考此接口调用方式,根据需要开发接入。 3、快速填写组件接口。 本接口可实现: 小程序开发者可以获取用户首次填写过的表单的信息,并快速快速填充本次需要填写的表单。减少用户输入的压力。 接口介绍、开放范围及申请指引,详见如下地址描述:https://developers.weixin.qq.com/community/business/doc/0004c23556c43074dde973aeb5bc0d 接口文档地址可可参考: https://developers.weixin.qq.com/miniprogram/dev/framework/cityservice/cityservice-auto-fill.html 可根据业务需要,开发接入。 微信团队 2020年3月31日
2020-03-31 - 报关接口常见问题Q&A
Q:支付单申报规则是怎样的 A:支付单申报规则有以下几点: 1、如果没有拆单,就以支付时的out_trade_no和transaction_id、原支付单对应的人民币金额(如有部分退款,减去部分退款金额)申报 2、如果拆单了,就以申报接口传的商户子单号sub_order_no和接口返回的子支付单号sub_order_id、申报接口传的order_fee金额申报 3、拆单的判断标准:调用支付申报接口时,商户传了sub_order_no就认为是拆单 Q:报关调用“订单附加信息提交接口”成功后,到海关清关返回:支付信息不存在 A:请按照以下几点检查: 1、新接入的商户:通常是因为商户推送订单使用的海关备案号、商户单号、支付单号与推送支付单使用的不一致(特别关注是否使用了拆单,然后单号不一致) 2、已上线的商户:可能是海关系统出现异常,请商户调用微信支付重推接口重推支付单(重推接口文档:https://pay.weixin.qq.com/wiki/doc/api/external/declarecustom.php?chapter=18_4&index=3) Q:报关调用“订单附加信息提交接口”返回:商户不支持该海关 A:请按照以下几点检查: 1、请求参数海关(customs)与商户后台添加的海关类型不匹配 2、请求参数海关备案号(mch_customs_no)与商户后台添加的海关备案号不匹配 Q:报关调用“订单附加信息提交接口”返回:交易单信息有误 A:请求参数中微信订单号与商户号不匹配,请填写该订单号对应正确的商户号 Q:多个商户主体需要开通报关业务,需要用哪个主体 A:如果商户用A主体在海关备案,就用A的主体开报关业务 Q:报关调用“订单附加信息提交接口”返回:商户不支持申报 A:请按照以下几点检查: 1、请登陆商户平台-产品中心-自助清关,检查是否有开通自助清关功能,如果未开通,请开通后再调用接口 2、商户平台没有添加海关备案信息,请按照文档要求,正确添加海关备案信息(添加备案信息指引: https://pay.weixin.qq.com/wiki/doc/api/external/declarecustom.php?chapter=17_1&index=1) Q:报关调用“订单附加信息提交接口”返回:签名错误 A:请按照以下几点进行排查: 1、使用签名检查工具(https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1)校验签名算法是否有误 2、确认秘钥是否有误(服务商模式使用服务商商户号秘钥,秘钥是在商户平台配置,如果同一商户号调用其它接口成功可排除是秘钥问题) 3、确认接口实际的请求参数与生成签名原串的参数一致,不能增加或缺少参数(可通过打印签名原串进行排查) 4、确认参数的大小写,参数名与接口文档一致 5、签名原串的参数值使用原始值,不需要encode 6、接口需要使用UTF-8编码 7、签名不需要参数nonce_str,请去掉 Q:报关调用“订单附加信息提交接口”返回:商户海关申报重入信息不一致 A:请按照以下几点检查: 1、如果重复调用订单附加信息提交接口,所有请求参数必须与第一次请求参数一致 2、商户修改请求参数后重新调用“订单附加信息提交接口”,请求接口中的参数action_type需传MODIFY Q:报关的重推接口是哪个 A:重推接口文档如下: https://pay.weixin.qq.com/wiki/doc/api/external/declarecustom.php?chapter=18_4&index=3 Q:报关调用“订单附加信息提交接口”返回:您的操作已提交,请确认是否已生效 A:请按照以下几点检查: 1、微信订单号与商户号不匹配,请仔细检查确认 2、重复提交请求,修改了用户实名信息,请求参数中需传action_type为 MODIFY Q:报关调用“订单附加信息查询接口”返回:查询指定记录不存在 A:请按照以下几点检查: 1、请求参数中,微信订单号或商户订单号与商户号不匹配引起,请仔细检查 2、没用“调用订单附加信息提交接口”,请先调用“订单附加信息提交接口”后再调用查询接口发起查询 Q:报关调用“订单附加信息提交接口”返回:支付人与订购人信息不一致 A:请按照以下几点检查: 1、请求参数中,用户实名信息(cert_type,cert_id,name)填写错误,参数修改正确后,请求参数action_type填写为MODIFY,再次调用“订单附加信息提交接口”重新报关即可 2、需要商户联系用户在微信内修改为正确的身份证信息后,再重新下单支付,才可以顺利报关,原订单可以做退款处理 Q:要推送的海关不在接口文档列表里面,要选择哪个海关 A:接口文档列表没有的海关,商户在商户平台新增海关备案信息时选“广州(总署)”,备案号和备案名称填商户在海关登记的信息,然后按商户平台登记的信息调用“订单附加信息提交接口”即可 Q:调用报关接口,拆单的订单只能有一个子订单吗 A:拆单允许出现多个不同的子订单,需要多次调用报关接口 Q:拆单场景下,报关接口的拆单应付金额(order_fee)怎么填写 A:拆单场景的应付金额,只需要不超过原订单金额即可 Q:境内/境外机构服务商模式下的子商户是否支持调用报关接口 A:支持。境内普通直连商户,普通服务商 /境外机构商户,请使用境内/境外机构的商户号调用申报接口,在境内/境外机构的商户后台配置子商户的海关备案信息 Q:境内服务商模式的订单是否支持调用报关接口 A:支持。境内服务商商户,请使用统一下单中的子商户号调用申报接口,在服务商商户后台配置子商户的海关备案信息 Q:报关调用“订单附加信息提交接口”返回:商户未在当前申报的海关进行备案 A:请按照以下几点检查: 1、商户未在海关备案 2、商户没有把海关备案信息添加到商户平台 3、商户在商户平台添加的海关备案信息不正确 Q:部分退款的订单,海关申报规则是怎样 A:部分退款订单的申报规则如下: 1、如果是退款前申报,默认是按照支付订单金额来申报 2、如果是退款后申报,默认就按照退款后剩余的金额来申报 3、如果是申报后发生退款,调用“订单附加信息提交接口”传参数action_type=MODIFY重新推送即可 Q:报关调用“订单附加信息提交接口”,传参数action_type=MODIFY ,可以修改哪些参数 A:可修改的参数为:身份信息、 备案信息、备案号、 金额 Q:报关调用“订单附加信息提交接口”返回:XML参数格式错误 A:请按照以下几点检查: 1、请求参数不符合XML格式要求,请仔细检查 2、请求参数错误,比如把参数APPID填写为原始ID Q:报关调用“订单附加信息提交接口”返回:cert_check_result为DIFFERENT A:请按照以下几点检查: 1、UNCHECKED 商户未上传订购人身份信息 2、SAME 商户上传的订购人身份信息与支付人身份信息一致 3、DIFFERENT 商户上传的订购人身份信息与支付人身份信息不一致 Q:报关调用“订单附加信息查询接口”返回:NO_AUTH A:请检查当前商户号是否已获得此接口的调用权限,请按照以下链接指引申请开通权限(https://pay.weixin.qq.com/wiki/doc/api/external/declarecustom.php?chapter=17_1&index=1) Q:报关调用“订单附加信息提交接口”返回:拆单金额不正确 A:子订单金额,以分为单位,不能超过原订单金额,order_fee=transport_fee+product_fee(应付金额=物流费+商品价格) Q:报关调用“订单附加信息查询接口”会返回哪几种状态码 A:返回的状态码有以下几种: 1、UNDECLARED -- 未申报 2、SUBMITTED -- 申报已提交 3、PROCESSING -- 申报中 4、SUCCESS -- 申报成功 5、FAIL-- 申报失败 6、EXCEPT --海关接口异常 Q:报关调用“订单附加信息提交接口”推送广州南沙国检,推送规则是怎样的 A:推送广州南沙国检规则如下:商户需在广州总署备案,并把海关备案信息添加到商户平台,推送广州总署即可 Q:报关调用“订单附加信息查询接口”返回:电商平台未按照海关总署179号公告要求改造 A:这个报错的原因是电商平台没有按海关要求去报关相关数据,导致出错了,商户要按海关要求完成改造后即可正常报关,具体改造可以找海关问下 Q:报关调用“订单附加信息提交接口”返回:用户非身份证实名注册,不允许报关 A:请按照以下几点检查: 1、根据海关的要求,报关只支持大陆身份证实名认证的微信用户(非身份证实名认证的微信用户,不支持报关) 2、用户使用了亲属卡支付,下单人是A,支付人是C,应使用支付人C的实名信息报关 Q:报关调用“订单附加信息提交接口”报关成功后,在海关清单时返回:区内企业名称,需与企业备案时所填写名称一致 A:请按照以下几点检查: 1、商户在海关备案的商户名称,需要正确添加到商户平台 2、添加到商户平台的商户名称有括号的话也要区分清楚是中文括号还是英文括号,包括要区分圆角和半角 3、商户如果更换了主体,旧主体支付的订单可以这样处理即可正常报关(先调用“订单附加信息提交接口”-->再调用“订单附加信息重推接口”-->最后调用“订单附加信息提交接口”传参数action_type=MODIFY即可) Q:报关调用“订单附加信息提交接口”返回:UNDECLARED A:返回这个状态,请注意以下几点: 1、不管是第一次调用申报接口成功,还是调用重推接口成功,初始状态都是UNDECLARED,是待申报的意思。后续微信支付后台会异步批量提交给海关,大概几分钟的时间,状态就会正常 2、报关第一次申报后想看状态结果需要主动调用“订单附加信息查询接口”去查询,如果不查询或者不成功直接重推也ok ,最后清关结果才是准确的 Q:亲属卡支付的订单,是用谁的(下单的和支付的)实名信息报关 A:亲属卡支付的订单,是用付款人的实名信息报关,比如A给B开了亲情卡,B支付,扣A的钱,交易单中留A的信息 Q:报关调用“订单附加信息提交接口”返回:第1个支付节点的电商平台代码填写有误 A:请求参数“海关备案号”不正确,请检查是否在海关变更过备案信息 Q:报关调用“订单附加信息提交接口”返回:无效的海关备案号长度 A:请按照以下几点检查: 1、请求参数mch_customs_no中多了空格 2、海关备案号一般为10位字符串,请检查海关备案号是否正确 Q:报关调用“订单附加信息提交接口”返回交易币种与商户结算币种不一致 A:调用报关接口传入子订单号(sub_order_no)时,币种参数(fee_type)必填,请检查所传币种参数(fee_type)是否为空 Q:报关调用“订单附加信息提交接口”,如果订单发生了部分退款,该怎样申报 A:请按照以下几点提示申报: 1、如果是退款前申报,默认是按照支付订单金额来申报 2、如果是退款后申报,默认就按照退款后剩余的金额来申报 3、如果是申报后发生退款,可以调用申报接口,传报关类型为修改action_type=MODIFY,重新申报推单即可 Q:报关调用“订单附加信息提交接口”,实名不一致的情况下是否会返回:验核机构、验核机构交易流水号 A:请求参数传action_type=ADD或action_type=MODIFY,实名不一致的情况下都会返回上面的两个参数 Q:报关调用“订单附加信息提交接口”拆单场景下,拆单应付金额怎么填写 A:拆单的应付金额,微信报关接口只校验不超过总单号的支付金额,不会子单号一个一个校验 Q:在商户平台添加海关备案信息,有天津国检和天津海关,该添加哪个 A:在微信支付商户管理后台登记备案信息时,天津和天津国检都要登记备案信息,调用接口的时候,只需要报天津海关即可 Q:报关调用“订单附加信息提交接口”返回:132021060您的操作已提交,请确认是否已生效 A:用户实名有问题,请找用户确认是否有实名认证或是否是用户把微信支付账户注销了 Q:报关调用“订单附加信息提交接口”返回:132021058 您的操作已提交,请确认是否已生效 A:这个错误码的意思是: 未配置天津国检,不允许申报。需要推送订单至天津海关时,需要在商户管理后台同时配置天津海关备案信息与天津国检备案信息;调用报关接口时只需推送天津海关,即请求一次报关接口 Q:报关接口,单笔订单拆单数量有上限么 A:有上限的,一个订单,最多拆50个 Q:支付的订单使用了优惠券,请求报关的时候报给海关的金额是多少 A:使用了优惠券的订单,报给海关的金额就是订单支付的总金额(用户实际支付的金额+优惠券金额) Q:报关调用“订单附加信息提交接口”返回:该订单没有申报 A:接口调用错误。没有申报过的订单,请调用订单附加信息提交接口,不要调用重推接口 https://pay.weixin.qq.com/wiki/doc/api/external/declarecustom.php?chapter=18_1 订单附加信息提交接口文档 Q:订单附加信息提交接口的请求频率是多少 A:请求频率是600/s Q:订单附加信息提交接口,验核机构(verify_department)和验核机构交易流水号(verify_department_trade_id)的作用是什么 A:海关的要求,表示支付来源,支付渠道,商户需要把这两个信息在清关三单对碰的时候提交给海关
2021-05-13 - 订单支付成功,但是一直未收到微信的支付成功回调通知
微信支付完成后notify_url,没有收到回调通知情况下,可按以下几个步骤排查问题: 确认上送微信回调地址与自己系统实际回调地址是否一致;核实上送回调地址是否可被外网访问,是否有DNS解析;核实是否有安全策略拦截微信支付回调通知;确认回调地址代码的可用性;如果使用V3接口,确认下是否设置加密的秘钥,登录商户平台操作~请参考APIV3秘钥设置。附:回调通知注意事项、支付回调和查单实现指引
2021-04-27 - 签名错误讨论区-V2版
官方的解决方案您好,请按照以下几点排查:1、使用签名检查工具:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1)校验签名算法是否有误 2、确认秘钥是否有误(服务商模式使用服务商商户号秘钥,秘钥是在商户平台配置,如果同一商户号调用其它接口成功可排除是秘钥问题) 3、确认接口实际的请求参数与生成签名原串的参数一致,不能增加或缺少参数(可通过打印签名原串进行排查) 4、确认参数的大小写,参数名与接口文档一致 5、签名原串的参数值使用原始值,不需要encode 6、接口需要使用UTF-8编码 如果上面的您都检查了,请按照以下几点排查:7、打印出您请求出去最后的数据与您工具校验正确的数据做一下对比,看是否有大小写不同,或者多余的空格 8、拿现在的参数使用postman进行测试,排除法,避免应用层处理问题导致 9、重置秘钥(支付key) 我们来一一分析一下 一、日常签名错误[图片] 1、缺少数据2、空格3、大小写为啥会有这样的问题,正常来说,如果有这些问题下单是不会报签名错误的,这个是因为本身签名是成功的,但是开发者最终请求出去的数据有变动或写死了一些数据导致,这里需要开发者将自己最终请求出去的数据打印出来使用工具验证一下 二、工具验证sign值一样,但是为何还是报错签名错误?[图片] [图片] 注意:工具只会校验数据签名后的sign是否对应,不会校验支付key是否正确,但是调用下单接口时微信支付官方后台会校验 解决方案: 1、找到正确的key,替换重试(如果还是报签名错误,请参考2) 支付key的位置【账户中心-API安全-API密钥-设置秘钥】 2、重置key(优先,但是注意重置key对其他线上使用到key的业务是有影响的,这里需要业务量小时再去重置,然后替换所有使用到key的地方),替换重试 三、支付结果通知验签失败1、支付结果通知有些开发者测试验签时,将收到的数据通过微信发给其他同事测试,其中有个数据是这样的 <return_msg><![CDATA[OK]]></return_msg> 这个数据通过微信发送会变成这样: [图片] 然后别的开发者复制出来后就会变成这样: <return_msg><![CDATA]></return_msg> 最后在去手动验签就会报错:“签名失败” 2、接收到支付结果通知后,将数据封装后在进行验签,这样也会报:"签名错误",所以一定要使用官方返回的原数据 四、确认秘钥(支付key)是否有误1、服务商模式使用服务商商户号秘钥,秘钥是在商户平台配置【账户中心-API安全-API密钥-设置秘钥】,如果同一商户号调用其它接口成功可排除是秘钥问题 2、使用错误的秘钥,我们商户后台 除了API秘钥还有一个V3API秘钥设置,这里不要设置错误了和使用错误了,当然您可以将V2V3秘钥设置成一样的,我就是这样设置的,避免使用错误 [图片] 3、设置的秘钥在A商户号下,但是下单使用的是B商户号,服务商这个问题比较多,设置在子商户上,但是使用的是服务商模式
2021-04-22 - 微信第一次支付成功,第二次提示包名不对,返回-1?
一、为什么第一次成功了,第二次却返回-1? 这是因为接口的校验规则问题,第一次请求没有对包名、签名进行验证 二、返回-1代表什么意思? 1、返回-1可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。 2、确认manifest文件里面声明,应用使用的注册appid的包名是否与开放平台一致。 3、appid关联的包名和签名需要商户自己登陆商户后台系统查看。 自查地址:OpenSdk包名签名校验失败说明
2021-01-14 - 小程序插件中能否调用会员卡组件?
请问,能否在小程序插件中使用会员卡组件,并完成开卡流程。 谢谢
2021-04-02 - 调用JSAPI接口支付,返回“系统繁忙,请稍后再试”
请按照以下几点检查: 1)xml格式是否正确。 2)没用的字段不传,不能传null,比如err_code_des。 3)签名出问题也会显示系统繁忙的,注意要设置完所有参数后才进行签名。 4)是否有在对应的商户平台设置扫码支付回调url。
2020-12-31 - 微信人脸核身接口能力
一、能力背景 近年来,国家在医疗挂号、APP注册、快递收寄、客运、运营商等多领域规定,需要用户实名才可办理业务,预计后续也会有越来越多的此类法规。因此,微信参照公安部“互联网+”可信身份认证服务平台标准,依托腾讯公司及微信的生物识别技术,建立微信“实名实人信息校验能力” ,即通过人脸识别+权威源比对,校验用户实名信息和本人操作(简称微信人脸核身)。 目前接口限定主体及行业类目开放公测,提供给资质符合要求的业务方,在合适的业务场景内使用。目前仅支持持二代身份证的大陆居民。 由于人脸核身功能涉及到用户的敏感、隐私信息,因此调用此接口的小程序,需要满足一定的条件。即:小程序的主体以及类目,需要在限定的类目范围内,且与小程序的业务场景一致。开展的业务也需要是国家相关法规、政策规定的需要“实名办理”的相关业务(其他未在范围内的业务,则暂不支持)。 以下为接口接入及开发的详细内容。如开发中遇到任何疑问,可以点击此处通过社区反馈,将有工作人员跟进回复。 文档第四部分【再次获取核验结果api】,有助于提高业务方安全性,请务必接入! 现阶段微信人脸核验能力,针对小程序,开放的主体类目范围包含: 小程序一级类目 小程序二级类目 小程序三级类目 使用人脸核验接口所需资质 物流服务 收件/派件 / 《快递业务经营许可证》 教育 学历教育(学校) / (2选1):1、公立学校:由教育行政部门出具的审批设立证明 或 《事业单位法人证书》;2、私立学校:《民办学校办学许可证》及营业执照 医疗 公立医疗机构 / 《医疗机构执业许可证》与《事业单位法人证书》 医疗 互联网医院 / 仅支持公立医疗机构互联网医院(2选1):1、卫生健康部门的《设置医疗机构批准书》;2、 合作医院的《医疗机构执业许可证》与执业登记机关的审核合格文件 医疗服务 三级私立医疗机构 / 仅支持三级以上私立医疗机构,提供《医疗机构执业许可证》、《营业执照》及《医院等级证书》 政务民生 所有二级类目 / 仅支持政府/事业单位,提供《组织机构代码证》或《统一社会信用代码证》。 金融业 银行 / (2选1):1、《金融许可证》; 2、《金融机构许可证》。 金融业 信托 / (2选1):1、《金融许可证》; 2、《金融机构许可证》。 金融业 公募基金 / (3选1):1、《经营证券期货业务许可证》且业务范围必须包含“基金”;2、《基金托管业务许可证》; 3、《基金销售业务资格证书》。 金融业 证券/期货 / 《经营证券期货业务许可证》 金融业 保险 / (8选1):1、《保险公司法人许可证》;2、《经营保险业务许可证》;3、《保险营销服务许可证》;4、《经营保险代理业务许可证》;5、《经营保险经纪业务许可证》;6、《经营保险公估业务许可证》;7、《经营保险资产管理业务许可证》 ;8、《保险兼业代理业务许可证》。 金融业 消费金融 / 银监会核准开业的审批文件与《金融许可证》与《营业执照》 交通服务 网约车 快车/专车/其他网约车 (自营性网约车)提供《网络预约出租汽车经营许可证》。(网约车平台)提供与网约车公司的合作协议以及合作网约车公司的《网络预约出租汽车经营许可证》。 交通服务 航空 / (航司)提供《公共航空运输企业经营许可证》。(机场)提供《民用机场使用许可证》或《运输机场使用许可证》。 交通服务 公交/地铁 / 提供公交/地铁/交通卡公司《营业执照》 交通服务 水运 / (船企)提供《水路运输许可证》。(港口)提供《港口经营许可证》 交通服务 骑车 / 仅支持共享单车,提供共享单车公司《营业执照》 交通服务 火车/高铁/动车 / 仅支持铁路局/公司官方,提供铁路局/公司《营业执照》 交通服务 长途汽车 / (2选1):1、《道路运输经营许可证》(经营范围需含客运);2、官方指定联网售票平台(授权或协议或公开可查询文件)。 交通服务 租车 / 运营公司提供《备案证明》与对应公司《营业执照》,且营业执照中包含汽车租赁业务 交通服务 高速服务 / 仅支持ETC发行业务,(2选1):1、事业单位主体,需提供《事业单位法人证书》;2、官方指定的发行单位(一发单位),需提供“官方授权或协议,或公开可查询的文件”; 生活服务 生活缴费 / (供电类)提供《电力业务许可证》与《营业执照》,且《营业执照》且经营范围含供电。(燃气类)提供《燃气经营许可证》与《营业执照》,且《营业执照》且经营范围含供气。(供水类)提供《卫生许可证》与《营业执照》。 IT科技 基础电信运营商 / (2选1):1、基础电信运营商:提供《基础电信业务经营许可证》;2、运营商分/子公司:提供营业执照(含相关业务范围)。 IT科技 转售移动通信 / 仅支持虚拟运营商,提供《增值电信业务许可证》(业务种类需含通过转售方式提供移动通信业务) 旅游服务 住宿服务 / 仅支持酒店,提供《酒店业特种行业经营许可证》 商业服务 公证 / 仅支持公证处,提供《公证处执业许可证》 社交 直播 / (2选1):1、《信息网络传播视听节目许可证》;2、《网络文化经营许可证》(经营范围含网络表演)。 如对以上类目或资质有疑问,可点击参考小程序“非个人主体开放的服务类目”,详细了解小程序开放的服务类目及对应资质。 二、准备接入 (请在小程序发布后,再提交人脸核身接口申请) 满足第一节中描述的类目和主体的小程序,可申请微信人脸核验接口。目前微信人脸核身接口已改为线上自助申请方式,需按照如下图例指引,进行接口申请: 第一步:请通过mp.weixin.qq.com登录小程序账号在后台“功能-人脸核身”的路径,点击开通按钮—— [图片] 第二步:仔细查阅《人脸识别身份信息验证服务条款》后,点击“同意并下一步”—— [图片] 第三步:请正确填写服务信息,并上传该小程序类目下所要求的资质—— [图片] 第四步:请按照业务实际需求填写使用人脸接口的场景和用途—— [图片] 第五步:请完善测试信息和联系人—— [图片] 第六步:提交后请耐心等待1-2天的审核期,审核结果将以站内信通知—— [图片] 如申请期间遇到问题,可联系腾讯工作邮箱 wx_city@tencent.com,将会有相关工作人员进一步指引。 三、接口文档: (一)接口描述 名称: wx.startFacialRecognitionVerify(OBJECT) 功能:请求进行基于生物识别的人脸核身 验证方式:在线验证 兼容版本: 读数字:android 微信6.5.4及以上版本, iOS 微信6.5.6及以上版本 屏幕闪烁:android 微信6.7.2及以上版本, iOS 微信6.7.2及以上版本 开放状态:未开放 开放范围:白名单 (二)参数说明 1、OBJECT参数说明: 参数 类型 必填 说明 name String 是 姓名 idCardNumber String 是 身份证号码 success Function 否 调用成功回调 fail Function 否 调用失败回调 complete Function 是 调用完成回调(成功或失败都会回调) checkAliveType Number 否 人脸核验的交互方式,默认读数字(见表1) 表1:checkAliveType的值和对应的解释: 参数 解释 2 先检查是否可以屏幕闪烁,不可以则自动为读数字 2、CALLBACK返回参数 参数 类型 说明 errMsg String 错误信息 errCode Number 错误码 verifyResult String 本次认证结果凭据,第三方可以选择根据这个凭据获取相关信息 注 1:传递用户姓名和身份证有两种方式 业务方没有用户实名信息,用户需要在前端填写身份证和姓名,那么前端直接通过jsapi 调用传递 name 和 idCardNumber。 业务方已经有用户实名信息,后台通过微信提供的 api(详情见文档后面“上传姓名身份证后台 api”)上传用户身份证姓名和身份证,api 返回 user_id_key 作为凭证传给前端,前端再调用 jsapi,用户姓名、身份证信息不需要经过前端,参数只需要传递 userIdKey。Tips:使用该功能需要小程序基础库版本号>=1.9.3。 3、回调结果说明 回调结果请参考以下释义: [图片] [图片] [图片] 4、示例代码 [图片] [图片] (三)上传用户姓名身份证的后台api 1、API说明 1.1说明 业务方上传用户姓名和身份证,获取用户凭证,把凭证给到前端通过 jsapi 调用。 Tips :使用该功能需要小程序基础库版本号>=1.9.3。 1.2请求URL https://api.weixin.qq.com/cityservice/face/identify/getuseridkey?access_token={ac cess_token} 1.3请求方式 POST 2、请求数据格式 [代码]Json { "name" : “张三”, "id_card_number" : "452122xxxxxxx43215" } [代码] 请求示例 [代码]#!/bin/bash TOKEN='xxxxxxxxxxxx' URL='https://api.weixin.qq.com/cityservice/face/identify/getuseridkey' JSON='{ "name": "张三", "id_card_number": "452344xxxxxxxxxxxxx234"}' curl "${URL}?access_token=${TOKEN}" -d "${JSON}" [代码] 参数说明 json 字段 中文显示 name 姓名 id_card_number 身份证号码 3、返回数据 参数 类 型 说明 errcode int 错 误码 errmsg string 错 误 信息 user_id_key string 用于后台交户表示用户姓名、身份证的凭证 expires_in uint32 user_id_key 有效期,过期需重新获取 [代码]{ "errcode" : 0, "errmsg" : "ok", "user_id_key" : "id_key_xxxx", "expires_in": 3600 } [代码] 四、再次获取核验结果api 此接口是前端完成人脸核身后,基于前端返回的凭据,通过后台api再次进行核验结果和身份信息的校验,有助于提高安全性,请务必接入! 前端获取结果不可信,存在被篡改的风险,为了保障请求结果安全性,请务必对identify_ret、id_card_number_md5、name_utf8_md5字段进行校验! (一)API说明 1、说明 人脸核身之后,开发者可以根据jsapi返回的verify_result向后台拉取当次认证的结果信息。 2、请求URL https://api.weixin.qq.com/cityservice/face/identify/getinfo?access_token={access_token} 3、请求方式 POST 4、请求格式 json (二)请求数据说明 1、请求 参数 类型 是否必填 描述 verify_result String 是 jsapi返回的加密key(凭据) 2、数据返回 HTTP 头如下 Date: Mon, 06 Feb 2017 08:12:58 GMT Content-Type: application/json; encoding=utf-8 Content-Length: 85 Connection: close json示例 [代码]{ "errcode" : 0, [代码] [代码]"errmsg" : "ok", "identify_ret" : 0, "identify_time" : 1486350357 "validate_data": "8593" [代码] [图片] (三)返回参数说明 1、返回参数 注:errcode和identify_ret同时为0,代表本次认证成功。 参数 类型 描述 errcode int 错误码, 0表示本次api调用成功 errmsg string 本次api调用的错误信息 identify_ret int 人脸核身最终认证结果 identify_time uint32 认证时间 validate_data string 用户读的数字(如是读数字) openid string 用户openid user_id_key string 用于后台交户表示用户姓名、身份证的凭证 finish_time uint32 认证结束时间 id_card_number_md5 string 身份证号的md5(最后一位X为大写) name_utf8_md5 string 姓名MD5 2、错误码对应信息 errcode 备注 84001 非法identity_id 84002 用户信息过期 84003 用户信息不存在 五、小程序辅助接口:检查设备是否支持人脸检测 1、接口名称 接 口 :wx.checkIsSupportFacialRecognition(OBJECT) 功能:检查设备是否支持人脸检测 2、接口说明和使用 小程序调用该接口,可以检测当前手机设备是否具备支持人脸检测的能力,可与以上接口分开使用,为了用户体验,建议调用后对手机设备不支持的用户做对应功能处理。 3、接口说明和使用 01 OBJECT 参数说明: 参数 类型 是否必填 描述 success Function 否 调用成功回调 fail Function 否 调用失败回调 complete Function 是 调用完成回调(成功或失败都会回调) checkAliveType Number 否 人脸核验的交互方式,默认读数字(见表 2) 表 2:checkAliveType 的值和对应的解释: 参数 解释 2 先检查是否可以屏幕闪烁,不可以则自动为读数字 02 CALLBACK 返回参数 参数 类型 说明 errMsg Boolean 错误信息 errCode Number 错误码 03 回调结果说明 回调类型 ErrCode 说明 sucess 0 支持人脸采集 fail 10001 不支持人脸采集:设备没有前置摄像头 fail 10002 不支持人脸采集:没有下载到必要模型 fail 10003 不支持人脸采集:后台控制不支持 04 示例代码 [图片] 六、安全性说明 为保障业务可用性以及安全性,请详细研读微信人脸核身接口相关基础说明及安全说明文档:https://docs.qq.com/doc/DTFB0YWFIdGV6amly 备注:如开发中遇到任何疑问,可以点击此处通过社区反馈,将有工作人员跟进回复。 七、案例展示及补充说明 安徽医科大学第二附属医院,微信人脸核验登录: 安徽医科大学第二附属医院,是三级甲等综合医院。其小程序为用户提供挂号、门诊费用、住院费用、检查报告、体检等医疗服务,同时也提供停车、餐饮等便民服务,是医疗小程序中完整的案例。 小程序使用了微信人脸核验能力作为登录的核验。满足医院管理要求,也满足国家对于实名就医的管理规则。 案例实现的截图效果如下: [图片] [图片] 针对近期少数小程序方面反馈的两类问题,也在本课程进行补充说明。 1、本接口的开放范围,即:可支持的主体类目,是否可以扩大? 说明:基于本接口整体使用范围的评估、相关法规的参考、监管策略的理解执行等,暂时未立刻进行扩大开放范围的工作。 但我们会持续基于不同行业的法规、政策及监管要求等,逐一进行研究考量,以便确认如何扩大开放范围。 2、小程序如果涉及用户本人的生物特征采集,(如本人人脸照片、人脸视频),或涉及采集用户本人生物特征信息并开展人脸核验功能,则存在被驳回的情况? 说明:近两年“人脸识别”技术在社会上掀起了热潮。人脸识别虽然作为摆脱“中间媒介”或“承载载体”的一种直接技术手段,解决了部分政务、交通、医疗、零售等证明“操作者是本人”的问题,但也因此,引入了新的更大的安全风险。 一是,虚假安全风险。 身份认证领域的安全三因素包括“我知道什么”、“我拥有什么”、“我的特征是什么”,通用的安全做法,是要双因素认证(2FA),人脸识别技术如仅凭“我的特征是什么”这一个因素,则容易被攻破或利用。表象给用户以安全的感觉,但实际并不能达到安全效果。 二是,信息泄漏的风险。 越来越多的组织或个人,在并非必需用户敏感信息、生物特征的情况下,采集并存储此类信息。在信息加密、传输、存储过程中,容易暴漏更多的网络节点,使得此类信息有更大的风险被网络黑客拦截、窃听、窃取,或直接被脱库。 三是,消除风险的难度大。 以往基于“中间媒介”或“承载载体”的方式,如出现丢失、被冒用、恶意盗用等风险,可以通过挂失、更换、使用新载体或新媒介等方式,快速排除一定的风险。C端主动,B端主动,都能解决一部分问题。但人脸识别做为更直接的方式,一旦出现冒用、盗用,受害者将面临更大的财产及人生安全风险,且C端用户更多时候无法主动消除风险。 基于以上问题风险,加之国家出台《网络安全法》、《用户隐私保护条例》等法律法规标准,网信办、公安部、工信部及市场监管总局等四部委发起的app获取隐私整治,结合平台安全、用户敏感隐私信息保护要求及监管,针对部分暂无相关法规或要求,需要采集或生物认证方式进行身份核验的,或以“追热点”或“尝鲜”为目的,采集用户生物特征或进行身份核验的,进行严格审核,必要时不予以支持。
04-24 - 微信支付成功notify_url同一时间回调两次怎么回事?
微信支付成功notify_url同一时间(相同的时分秒)回调两次怎么回事?[图片]
2021-02-28 - 微信支付返回-1
再三确认过了微信开放平台配置的包名和应用签名没问题。微信分享没问题,微信授权登录也没问题,就是微信支付返回-1,后台的签名算法也是完全按照官方文档来的
2020-03-28 - JSAPI调起支付请求,返回:商户传入的appid 参数不正确,请联系商户处理
该问题可能是以下两个原因: 1、统一下单接口中上传的appid与调起微信客户端进行支付的appid不一致 2、调起微信客户端进行支付的必要参数prepayid有误或者prepayid已经过期(有效期2小时)
2021-01-14 - 【发放代金券API】 常见问题
接口url :https://api.mch.weixin.qq.com/v3/marketing/favor/users/{openid}/coupons 文档地址:发放代金券接口 Q1:商户号A调用接口,可以发放其他商户号(商户号B)创建的代金券吗?如何实现? A1:商户号A默认只允许发放本商户号创建的代金券,如需发放商户号B创建的代金券,可参考以下指引: 商户号A、商户号B需要分别开通“跨商户号发券”权限。开通权限后,商户号A制券时,会出现“可发券商户”配置项。商户号A将商户号B添加为“可发券商户”后,商户号B即可调用发券接口发放该批次代金券。 跨商户发券调用接口时需注意,接口传入的参数中,除stock_creator_mchid、stock_id为制券方提供的数据外,其余数据均为接口调用方的数据。 附:“跨商户号发券”权限申请流程: 发送申请邮件至 weixincard@tencent.com,并且抄送至 xuanxuanxie@tencent.com,邮件标题:【跨商户号发券申请】,邮件内容:说明申请原因、制券的商户号、发券商户号,批量申请请提供表格附件。权限by商户号申请,已有权限商户号无需重复申请 Q2:通过接口发放的代金券,是否支持插入微信卡包? A2:通过接口发放的代金券,不会自动插入微信卡包, 如需申请自动插入卡包的能力,可向对接的微信支付行业运营同事了解申请流程(仅向部分商户开放)。代金券发券成功后,即使不插入微信卡包,也不会影响使用。 Q3:发放代金券API返回报错“参数错误,请核对文档要求”,是什么原因? A3:请参考文档核对参数,着重核对以下两项: stock_creator_mchid要填写创建批次商户号,且stock_creator_mchid与stock_id是否有对应关系;如不需要,请勿传入coupon_value、coupon_minimum两项参数。 Q4:发放代金券API返回报错“商户号和APPID不匹配”,是什么原因? A4:接口传入的appid需要与调用接口的商户号(即请求头中的商户号)有绑定关系 普通商户可登陆商户平台,在“产品中心-APPID授权管理”中完成绑定,可参考指引, 普通服务商可支持自助绑定同主体appid,绑定总数量为3个,操作指引。 Q5:发放代金券API返回报错“用户非法”,是什么原因? A5:报错“用户非法”的原因是,调用发放的代金券批次开启了安全防刷,且该用户被系统判定为疑似羊毛党、灰产用户、机器账号,故发放失败, 如对发券无风控要求,可在创建代金券时,关闭“安全防刷”选项。 Q6:发放代金券API返回报错“用户已达最大领券次数”,是什么原因? A6:可根据以下两种情况排查: 若该代金券批次未开启“自然人拦截”,则该openid已达到该批次设定的单用户领取上限;若该代金券批次开启了“自然人拦截”,则与该openid绑定了相同身份证/银行卡的所有微信账户合计已达到领取上限。 Q7:发放代金券API返回报错“签名错误”,是什么原因? A7:可参考指引。 以下为代金券V3接口: 商户侧验证微信返回签名的验签示例(PHP) 提取码:yx8o 验证签名工具 提取码:wujv
03-24 - 分账接口问题Q&A
Q1:分账调用“添加分账接收方接口”返回:系统繁忙,请稍后重试 A1:receiver中的参数account错误,参数account的规则有以下几点: 1、类型是MERCHANT_ID时,是商户ID 2、类型是PERSONAL_OPENID时,是个人openid 3、类型是PERSONAL_SUB_OPENID时,是个人sub_openid 4、APPID与mchid不匹配也会报这个错误,请检查确认 5、签名类型错误,分账接口签名类型目前只支持HMAC-SHA256 Q2:分账调用“添加分账接收方接口”返回:微信用户姓名与实名不一致 A2:receiver中的参数name错误,参数name的规则有以下几点: 1、分账接收方类型是PERSONAL_OPENID时,是个人姓名(选传,传则校验) 2、分账接收方类型是PERSONAL_SUB_OPENID时,是个人姓名(选传,传则校验) Q3:分账调用“请求单次分账接口”返回:分账接收方列表格式错误 A3:receivers中的参数amount类型错误,amount类型是int Q4:分账接收方类型包括哪些 A4:有以下几个类型: 1、MERCHANT_ID:商户ID 2、PERSONAL_OPENID:个人openid(由父商户APPID转换得到) 3、PERSONAL_SUB_OPENID: 个人sub_openid(由子商户APPID转换得到) Q5:分账调用“请求单次分账接口”,为什么不返回分账结果 A5:分账结果需要调用“查询分账结果”接口查询 Q6:分账调用“请求单次分账接口”返回:非分账订单不支持分账 A6:请按照以下几点检查: 1、微信订单号填写错误 2、下单的时候未传分账标识(profit_sharing=Y)的订单,是没有分账权限的 Q7:分账调用“请求分账接口”返回:分账金额不足 A7:请按照以下几点检查: 1、该订单已全额退款,没有资金可以分账 2、在微信支付中,实际收款之后微信支付会收取一定的结算手续费,在减去手续费后剩余的钱才能分账(请查看具体的结算规则) 3、该订单已解冻,已无分账资金(普通商户分账订单默认冻结期是30天; 电商分账订单默认冻结期是180天) 4、超过订单剩余可分账金额或者该订单已无可分账金额,请检查确认(可调用查询订单待分账金额API确认剩余可分账金额。文档地址:https://pay.weixin.qq.com/wiki/doc/api/allocation_sl.php?chapter=25_10&index=7) Q8:分账调用“请求分账接口”返回:订单处理中,请稍后重试 A8:请按照以下几点检查: 1,请在订单支付成功1分钟后再调用分账接口 2,未结算的订单,请在结算后再调用分账接口请求分账 3,老资金流商户的订单,不支持分账 4,商户开通了收支分离但手续费账户余额不足(手续费账户最低余额要求是100元以上,在充值手续费账户1小时后,订单会正常结算,即可正常调用分账接口) Q9:分账调用“请求多次分账接口”返回:分账接收方与原请求不一致 A9:商户分账单号填写错误,调用“请求多次分账接口”多次分账,要生成新的“商户分账单号”,不能使用已经分过账的商户分账单号 Q10:分账调用“请求单次分账接口”返回:SYSTEMERROR A10:请按照以下几点检查: 1、签名类型错误,分账接口签名类型目前只支持HMAC-SHA256 2、普通商户的分账订单,请使用普通商户分账接口,不能使用服务商分账接口 3、系统超时,请使用原参数尝试再次掉调用API Q11:分账调用“请求单次分账接口”返回:金额不足 A11:请按照以下几点检查: 1、该订单已解冻,已无分账资金 2、该订单已退款,已无分账资金 Q12:分账调用“请求单次分账接口”返回:分账接收方关系不存在,请检查参数中每个接收方的关系 A12:未添加分账接收方,分账接收方在分账之前需要调用“添加分账接收方接口”添加 1,电商子商户入驻,子商户是不会自动成为接收方,需要商户调用接口添加 2,门店加入品牌,门店会自动成为接收方,这个无需商户添加 Q13:调用分账接口是否有额外的手续费 A13:没有,商户的交易订单,平台会正常的收取结算手续费,商户使用分账功能,没有额外的费用 Q14:分账调用“请求单次分账接口”返回:分账接收商户全称不匹配 A14:请按照以下几点检查: 1、分账接收商户全称填写错误,请填写正确的商户全称 2、接口需要使用UTF-8编码 Q15:分账调用“添加分账接收方接口”返回:账户不存在 ,请先点击充值 A15:账户未开通,请接收方商户在商户平台点击“充值”创建账户(商户平台-交易中心-充值) Q16:分账账单是否支持API接口下载 A16:不支持,分账账单只能在商户平台-交易中心-分账-分账账单里面手动下载 Q17:分账调用“请求单次分账接口”返回:分账接收方关系不存在,请检查参数中每个接收方的关系 A17:请先调用“添加分账接收方接口”添加分账方后,再调用“请求单次分账接口”请求分账 Q18:分账如果有退款怎么处理 A18:已分出去的资金,在商户接收方同意的情况下,可以发起分账回退。 接收方可在“商户平台-交易中心-分账-分账接收设置”中开启同意分账回退。 分账订单的退款与分账回退并无强耦合,分账回退的资金是回到商户可用余额中,分账回退可先于退款发起,可后于退款发起,或者根据分账方与商户的约定,不发起分账回退。 [图片] Q19:分账调用“请求单次分账接口”返回:签名错误 A19:请按照以下几点检查: 1,使用签名检查工具(https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1)校验签名算法是否有误 2,确认秘钥是否有误(服务商模式使用服务商商户号秘钥,秘钥是在商户平台配置,如果同一商户号调用其它接口成功可排除是秘钥问题) 3,确认接口实际的请求参数与生成签名原串的参数一致,不能增加或缺少参数(可通过打印签名原串进行排查) 4,确认参数的大小写,参数名与接口文档一致 5,签名原串的参数值使用原始值,不需要encode 6,接口需要使用UTF-8编码 Q20:分账添加接收方接口,是在分账前添加一次,如果接收方无变化,后续是否还需要调用接口再添加 A20:是的,如果接收方没有变化,只需要添加一次即可 Q21:分账调用“查询分账结果接口”返回的分账单状态有几种 A21:有以下几点状态: 1,ACCEPTED—受理成功 2,PROCESSING—处理中 3,FINISHED—处理完成 4,CLOSED—处理失败,已关单 Q22:在商户平台设置了分账动账通知url,为什么收不到通知 A22:请按照以下几点排查: 1,未设置动账通知url,该链接是通过商户平台【交易中心-分账接收设置】中配置的通知url,必须为https协议。如果链接无法访问,商户将无法接收到微信通知。必须为直接可访问的url,不能携带参数。示例:notify_url:https://pay.weixin.qq.com/wxpay/123456789 2,商户未设置加密的密钥,请登录商户平台操作!请参考http://kf.qq.com/faq/180830E36vyQ180830AZFZvu.ht 3,只有分账接收方才能收到分账动账通知,分账方是不会有通知的 Q23:分账调用“单次分账接口”返回:对同笔订单分账频率过高 A23:同笔订单多次分账频率是1秒1次,请降低频率后重试 Q24:分账后资金到可提现是否有中间状态 A24:没有中间状态 Q25:分账后的资金什么时候可提现 A25:分账后钱已经到商户的账户了,可以立刻提现 Q26:分账调用“完结分账接口”的作用是什么 A26: 调用本接口,可以将不需要进行分账的订单金额解冻给特约商户 Q27:分账调用“请求单次分账接口”返回:分账金额超出最大分账比例 A27:请按照以下几点检查: 1,检查分账的金额是否超出在商户平台设置的允许分账的最大比例(可以调用查询订单最大分账比例API确认下设置的分账比例。 文档地址:https://pay.weixin.qq.com/wiki/doc/api/allocation_sl.php?chapter=25_11&index=8) 2,在微信支付中,实际收款之后微信支付会收取一定的结算手续费,在减去手续费后剩余的钱才能分账 Q28:分账调用“分账回退接口”返回:参数不正确,请检查参数 A28:return_account与mch_id不能填写为相同的商户号,不能自己给自己回退 Q29:分账订单调用“申请退款接口”返回:申请退款金额大于剩余未分账金额,请等待分账完成后再试 A29:订单有部分分账,订单有剩余未分账金额,退款金额不能大于剩余未分账金额,否则要调“完结分账”接口,解冻剩余资金后再退款 [图片] Q30:分账调用“完结分账接口”返回:分账金额不足 A30:调用了单次分账接口,分账成功后,剩余订单金额已经解冻。已经没有冻结的金额,所以没有必要再调用完结分账接口了 Q31:调用“单次/多次分账接口”是同步返回分账结果的吗?调用分账接口返回result_code=SUCCESS,能依据这个返回码来判断分账是否成功吗 A31:分账结果需要调用“查询分账结果接口”确认,分账接口返回success只是代表分账申请接收成功,并不代表分账成功 Q32:查询分账结果接口里面分账单状态(status)字段,当值为ACCEPTED时是表示分账成功了吗 A32:分账单的状态表示:是否处理完这一次的申请,不代表具体的处理结果。 [图片] 分账的具体结果,需要查看分账结果字段的内容 [图片] Q33:调用“添加分账接收方接口”一次可以添加多个接收方吗 A33:不可以,一次只能添加一个 Q34:请求分账接口返回:分账接收方不允许为分账出资方 A34:请按照以下几点检查: 1,V2接口,“请求单次分账接口”分账接收方不允许为分账出资方,“请求多次分账接口”分账接收方可以为分账出资方 2,V3接口,finish为true的情况,“请求分账接口”分账接收方不允许为分账出资方(这种场景,直接调完结分账API就好)。finish为false的情况,“请求分账接口”分账接收方可以为分账出资方 Q35:调用“请求单次分账接口”,请求分账分给多个接收方,会出现分账既有成功又有失败的情况吗 A35:同一次分账请求,会出现有的成功,有的失败的情况。具体请调用“查询分账结果接口”查看“分账结果”字段 Q36:“请求单次分账接口”分账接收方列表中的参数description会体现在分账账单里面吗 A36:在分账方分账账单和资金账单、分账接收方的资金账单里面都会体现 Q37:分账调用“添加分账接收方接口”返回:请求正在处理中,请稍后重试 A37:商户请求并发导致,重新再请求一次即可 Q38:分账调用“添加分账接收方接口”返回:商户已添加的分账接收方个数过多。请先删除多余的分账接收方,并在24小时之后再尝试添加 A38:添加分账接收方的个数限制是2W个,超过这个限制,请按照提示处理 Q39:电商收付通“请求分账接口”的频率是多少 A39:请求分账接口的频率是100QPS Q40:电商收付通“查询分账结果接口”的频率是多少 A40:查询分账结果接口的频率是200QPS Q41:电商收付通分账调用“请求分账回退接口”返回:可用余额不足,请充值后重新发起 A41:“回退商户号”的账户可用余额不足,需充值后再原单重试才能回退成功 Q42:电商收付通分账调用“请求分账回退接口”返回:可用余额不足,请充值后重新发起。这个时候,调用“查询分账回退结果API”却返回:PROCESSING(处理中),这个逻辑是正常的吗 A42:是正常的,逻辑就是这样的。这种情况,商户可以按照提示要求,提醒“回退商户号”充值后再原单重试即可回退成功 Q43:电商收付通分账调用“请求分账回退接口”返回:PROCESSING(处理中),什么情况会返回这种状态 A43:请参考以下几点: 1, 网络抖动导致请求中断 2,商户账户资金转账频繁,导致回退在排队时超时 Q44:电商收付通分账调用“查询分账回退结果接口”返回:TIME_OUT_CLOSED A44:TIME_OUT_CLOSED是fail状态了,也就是处于最终态,是不需要重试的。状态是SUCCESS也同理,也是最终态,不需要重试。返回TIME_OUT_CLOSED时可更换一个回退单,重新分账回退一次即可 Q45:电商收付通分账调用“请求分账接口”返回:分账补贴还未到账,不能受理分账 A45:报这个错误,是因为支付的订单在统一下单里面传了参数“补差金额:subsidy_amount”,传这个参数后,需要调用“请求补差API”完成补差,然后再调用“请求分账接口”即可正常分账 Q46:一笔交易在分账完成之后,将接收方和分账账户的绑定关系解除(删除分账接收方),然后进行分账回退,会成功吗 A46:会回退成功,不受删除分账关系的影响 这里的逻辑有两个: 1,这笔单曾经分给过了这个商户,且分账成功 2,这个商户开通了分账回退 Q47:分账调用“分账回退接口”返回:PROCESSING A47:过一分钟后原单重试即可 Q48:请求补差接口,返回参数里面的补差单结果字段 REFUND:已全额回退 这个是什么意思 A48:请参考以下两点: 1,商户通过补差回退接口,将原补差单的全部金额回退后,会被扭转为这个状态 2.,在极端的情况下,如果商户请求补差时,如果资金操作成功了,但是后续操作因为系统原因无法完成,微信支付就会把成功的资金回退给商户 Q49:分账回退有时间限制吗 A49:从订单创建的时间算起,现在分账回退限制180天以内的分账请求 Q50:分账方添加接口,如果相同的分账方重复提交,会返回添加失败,还是覆盖之前的分账方信息 A50:如果系统检测到已经绑定,那么会保留原来的数据,不更新数据,直接返回成功 Q51:在商户平台-管理分账接收方中手动添加分账接收方报错:系统错误,请稍后再试 A51:这个报错的原因是:账户未开通,请接收方商户在商户平台点击“充值”创建账户(商户平台-交易中心-充值) Q52:免充值和预充值的代金券,分账的时候,可分账的金额判断逻辑是一样的吗?比如10-5,使用了免充值代金券,可分账金额是5,使用了预充值代金券,可分账金额是10元还是5元呢? A52:不一样,使用了免充值代金券,可分账金额是5,使用了预充值代金券,可分账金额是10 Q53:请求分账返回:无分账权限 A53:请按照以下几点排查: 1,未开通分账权限,请开通后再调用分账接口 开通指引:https://pay.weixin.qq.com/wiki/doc/api/allocation_sl.php?chapter=24_2&index=2 2,请求参数错误,服务商用了普通商户的开发文档提交参数,检查确认 服务商模式请求分账文档:https://pay.weixin.qq.com/wiki/doc/api/allocation_sl.php?chapter=25_1&index=1 普通商户分账文档:https://pay.weixin.qq.com/wiki/doc/api/allocation.php?chapter=27_1&index=1 Q54:电商收付通请求分账接口返回:appid与openid不匹配 A54:请求分账接口里面的APPID必须传电商平台服务商的APPID,所以商户在添加分账接收方时获取的openid,也必须是这个电商平台服务商APPID获取的openid,请注意 Q55:请求分账回退接口返回:分账指令不存在,请检查是否有对应的分账单 A55:请按照以下几点排查: 1,分账回退里面的商户分账单号out_order_no,得是请求分账接口的商户分账单号out_order_no 2,请先调用查询分账回退结果API确认分账是否成功,分账成功的分账单才能正常回退。 3,从订单创建的时间算起,分账回退限制180天以内的分账请求,超过180天不支持回退 Q56:查询订单待分账金额返回:记录不存在 A56:请按照以下几点排查: 1,记录不存在,可能是单号拼错了,请检查确认 2,订单未结算,请在订单结算后再查询 3,非分账订单,请检查订单支付时是否传了分账标识,传了分账标识的订单,才能正确查询 Q57:商户号能正常完结分账,但是查询分账结果却提示“无分账权限”。是什么原因? A57:分账权限被冻结,请登陆商户平台查看站内信,按照指引申诉处理。 能正常完结分账的原因是:完结分账,就是将这笔订单的剩余的可分账的钱,都解冻给自己,由于这笔钱本来就是自己的,所以分账完结是一个安全的操作(钱没有给其他人,也没有给服务商,给了自己),所以是不会做权限校验的。当前要分出去给到别人时,就会做相关的权限校验了。 Q58:电商收付通调用补差接口返回:对应的订单不能补差 A58:请按照以下几点排查: 1,该订单已经解冻(也就是商户调用分账接口把钱分给了自己),所以不能再补差。 2,该订单已取消补差,所以不能再补差,请确认。
星期二 16:44 - 【委托代扣API】常见问题
文档地址:扣费服务 Q1:委托委托代扣模板id停用后会有什么影响? A1:已签约用户可以继续扣费或解约,不能新增签约,停用模板id后无法恢复使用,商户自行评估风险 Q2:公众号纯签约跳转签约页面后用户点击开通自动续费没反应是什么原因? A2:引导用户更新一下微信或清除下微信缓存,这种一般是偶现的,杀死进程重新启动再试试。 Q3:商户使用预扣费通知模式场景下,对于没有发送微信预扣费通知的用户,商户调用申请扣款接口后,微信端会返回什么错误? A3:接口会返回错误码INVALID_REQUEST,商户需要先下发扣费前通知才能发起扣费,若当前签约扣费期已结束,商户如需扣费则需重新发起扣费前通知。 Q4:商户从24小时扣费模式迁移到预扣费通知模式阶段时,发送预扣费通知后,解约后重新签约,可直接进行扣款,不受扣费等待期限制,这样是正常的吗? A4:正常的,用户解约后就是新的协议了,预扣费通知限制的维度是协议,没有发送过预扣费通知的协议,可以走直接扣费模式,发送过预扣费通知的协议,走预扣费通知模式,商户在迁移阶段,只有两种模式可以扣:预扣费通知模式和直接扣费模式,商户完成迁移后需联系微信侧运营确认,微信侧运营则会通知业管同事在系统中操作“迁移完成”,之后商户就只能走预扣费通知模式了。 Q5:预扣费通知中的错误码“RESOURCE_ALREADY_EXISTS”和“INVALID_REQUEST”的错误码描述意思是一样的,“RESOURCE_ALREADY_EXISTS”错误码描述为:已经下发过预扣费通知,请勿重复下发,“INVALID_REQUEST”错误码描述为:已经发送过扣费前通知,需要等本次扣费完成后再发起新,有什么区别吗? A5:错误码“RESOURCE_ALREADY_EXISTS”表示是相同参数,重复发送,错误码“INVALID_REQUEST”表示是发送过,参数不一样。错误码“RESOURCE_ALREADY_EXISTS”可以认为是发送成功。错误码“INVALID_REQUEST”可以认为是发送失败。 Q6:申请扣款周期说明 A6: 自动续费周期一般是以月、季度为周期,具体扣款发起时间不受模版内容的周期影响;委托代扣额度初始额度:单笔500、单日2500;授权扣款和免密支付,在额度限制内可以每天扣款5次(同一个用户在一个签约协议下;扣款失败不计算次数);自动续费模版需要按模版内容设定的周期扣款,且同一个用户在一个签约协议下每天仅可以扣款一次,如上线前需多次测试签约扣款,请申请测试模版(模版名称标明为测试,测试模版限额为每次0.1元,每天可扣款100次)。 Q7:一个微信用户能否与商户多次签约? A7:签约遵循同一个商户号+同一个模版ID+同一个微信号只能签约一次的原则。多次签约可采用多模版ID的方式,同一个商户号下的每个不同模版ID都可以与同一微信用户分别签约一次。 Q8:委托代扣解约回调地址修改后多久生效? A8:实时生效 Q9:申请扣款接口已经返回成功,为什么还会扣款失败? A9:申请扣款接口返回成功仅代表申请受理成功,不代表最终的扣款结果,扣款结果应以支付结果通知接口通知的结果为准,无论扣款是否成功都会返回扣款结果及原因。 Q10:签约和解约信息是通过什么路径通知给商户的? A10:签约通知是通过签约接口上传的notify_url参数所填写的地址回调通知的(签约失败不通知)。解约信息是通过创建模版ID时填写的解约通知URL来回调通知的。 Q11:商户使用微信支付商户平台发起的解约,收到的解约回调里的协议解约方式是3(商户API解约)这个是正常的吗? A11:正常的,目前微信支付商户平台就是调用商户API解约的。 Q12:商户调起微信纯签约报错“签名参数构造错误”如图,是什么原因? [图片] A12: 检查下签名是否正确,商户签名使用的key是否正确,并且key用的是api秘钥,不是apiv3秘钥,签名方式和api秘钥设置路径参看文档指引,商户可以用在线工具自行校验,工具地址;检查下商户传的notify_url参数文档是否有要求encode,如文档要求encode,则商户签名时需要使用encode之前原样的notify_url进行签名,encode只需一次即可。 Q13:商户调起微信纯签约报错“参数构造错误”如图,是什么原因? [图片] A13:检查下文档要求的必填参数有没漏传,或者文档中没有的参数有没多传。 Q14:商户调用H5纯签约返回“签约参数签名校验错误”是什么原因? A14: 检查下签名是否正确,商户签名使用的key是否正确,并且key用的是api秘钥,不是apiv3秘钥,签名方式和api秘钥设置路径参看文档指引,商户可以用在线工具自行校验,工具地址;检查下商户传的notify_url参数文档是否有要求encode,如文档要求encode,则商户签名时需要使用encode之前原样的notify_url进行签名,encode只需一次即可。检查下文档要求的必填参数有没漏传,或者文档中没有的参数有没多传。 Q15:支付中签约是否支持传入分账标识实现订单分账功能? A15: 暂不支持,支付中签约下单接口不会识别商户分账标识 Q16:单用户在单模板下商户尝试调用申请扣款接口的频率是多少? A16: 单用户在单模板下商户尝试调用申请扣款接口一天不能超过默认次数300次(包含succee和fail的返回,succee才表示扣款受理成功,等待扣款中) Q17:app纯签约点击完成后没有返回app而是停留在了微信聊天界面? A17: 商户登录开放平台检查对应app应用是否有跳转权限[图片] 2.按照文档排查下是否正常处理回调,参看文档https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/Android.html(注意:taskAffinity要填你的应用主taskAffinity(其实就是主界面的task,如果没有主动配置的话,默认是应用包名,如果要配置的,要改成跟配置的一样) [图片] 3.商户检查申请模板时的模版名称中是否有空格,如有只能删除模版名称中的空格后重新申请模板 [图片] 4.商户检查用户账户展示名称参数contract_display_account是否有空格,中英文符号,特殊字符串 Q18:app纯签约签约完成后,点击完成按钮,android点击没有反应,iOS点击提示“离开微信”,随后提示"未安装应用"? A18: 检查下商户传的appid是不是签约的这个app的appid检查返回的appid对应的app是否有安装检查商户的app是否有在手机注册schema地址 Q19:h5纯签约签约完成后点击完成按钮返回浏览器报错"launchApplication:fail_url need encode"? [图片] A19: 原因:商户请求签约的原url,里面参数嵌套了其它url地址,所以导致微信侧回跳的时候,解析错误了。这里面failUrl和redirectUrl虽然做了encode,但是由于微信侧回跳前会做一层decode,所以decode之后的链接是一个非法链接,被拦截了。如果商户需要嵌套url地址,可以做两层encode试试,建议解决方式:剔除参数中嵌套的url。 Q20:Url Schema指的是什么,UA指的是什么? A20: url schenma指的是app页面跳转协议地址UA指的是浏览器的User Agent,会跟随HTTP协议的header传递 Q21:app纯签约接口是否支付多账号签约功能? A21: 支持,商户只需在app纯签约中的预签约接口里多传入outerid字段即可,参数值格式必须按照此示例:李*艳(00000000000),否者会报错"<xml><return_code><![CDATA[FAIL]]></return_code><return_msg<![CDATA[PARAMERROR:outerid]]></return_msg></xml>" Q22:多账号签约接口里的contract_outerid和outerid的长度限制分别是多少? A22: contract_outerid32位字符,outerid32位字符 Q23:公众号纯签约商户的短链接可以跳转到签约页面,商户的长链接跳转报502是什么原因? A23: 链接超长,目前链接长度限制在1024字节以内 Q24:已签约同个模板id的用户使用支付中签约有已签约的提示吗? A24: 支付中签约一直都没有已签约的提示,纯签约会有提示 Q25:使用签约协议号A已签约后再解约,后续还可以使用签约协议号A签约成功吗,对吗? A25: 目前是这样的 Q26:商户调用支付中签约生成的订单使用的查询订单和支付回调结果通知是哪个文档? A26: 支付中签约生成的订单使用普通支付的查询订单接口(文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_2)和普通支付的支付结果回调通知接口(文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_7&index=8) Q27:开通多账号签约功能的模板id,如果同一个微信签约了两个用户,那么模板id扣款次数限制规则是不是应该按两个不同的签约用户分开计算 A27: 是的,针对每个签约独立计算 Q28:同个微信号在同个模板下当天有扣款次数限制吗? A28: 同个微信号在同个模板下当天最多能扣150次,总共包含商户重试申请扣款失败的次数和申请扣款成功的次数 Q29:商户调用申请扣款接口报错“扣款请求已受理,请勿重复发起” A29: 据自动续费规则,一个协议ID,在等待期间(24小时内),只能有一笔扣款 Q30:h5纯签约ios拉起签约后点击左上角返回的是微信,Android拉起签约后点击左上角返回的是拉起的签约页面,这是正常的吗 A30: 这是正常的,Android 能返回是因为只拉起WebView界面,结束之后把WebVIew关了,然后就漏出了浏览器,iOS做不到只拉起WebView界面,结束之后只能到聊天页面 Q31:h5纯签约或公众号纯签约签约完成后点击完成按钮返回的是商户首页(域名),不是发起签约请求的页面 A31: 1.浏览器发起签约场景: 问题根因:referer由于客户端webview内核安全策略变更,需要源页面进行授权后,才能获取完整URL,否则无法在签约完成后,原路跳回商户的H5页面,浏览器由于兼容性问题导致微信侧获取的referer只有域名部分,丢失了path部分,所以返回的是商户域名页 微信支付侧协助寻找了以下解决方案,建议商户试试,如仍有问题需商户自行联系浏览器厂商处理: 商户跳转前的源H5页面,需要在html中做referrer-policy的授权声明: 方法一(推荐): <meta name="referrer" content="no-referrer-when-downgrade">> 方法二: <meta name="referrer" content="unsafe-url"> 安全策略详情可参考:https://developers.google.com/web/updates/2020/07/referrer-policy-new-chrome-default Referrer-Policy声明的用法可参考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Referrer-Policy 注意: ① 商户需要检查一下html里面是否有多个meta name="Referrer"的声明(比如声明了一个<meta name="Referrer" content="origin" />,会覆盖开头的声明,需要删掉) ② 检查发起签约页面跳转微信时是否有处理过(比如中转页面或着在后台跳转的),必须是商户前端发起的跳转,否则不会生效 ③由于iOS15对referrer policy更加严格,referer只带了host没有带path,但iOS14以及之前版本的referer带了host和path,导致了iOS15以上目前只能返回商户域名页面 2.商户发起签约页面地址中有片段标识符: 片段标识符(URI Fragment,即URL中#号后面的部分)仅用作浏览器端的处理,不会参与到服务端请求中,故签约完成回跳不会带上这部分信息。 Q32:app内嵌h5纯签约无法唤起微信的签约页面是什么原因? A32: 建议检查拉起微信的app是否有拒绝打开授权,历史上的case都是用户自己拒绝了唤起授权。 Q33:商户使用申请扣款(pay/pappayapply)下单成功后,再调用关单接口(/pay/closeorder)成功后,之后再使用代扣的查询订单接口(/pay/paporderquery)查不到这笔订单,报错”订单不是委托代扣场景“,目前有什么解决方式吗? A33: 商户可以使用基础支付的查询订单接口来确认订单状态。 Q34:商户app内嵌h5发起h5纯签约签约完成后,申请了返回app的权限,返回app时提示“launchApplication:fail”,是什么原因? A34: 原因是商户配置的app的Schema有误导致无法正常跳回app,商户可以联系app的开发人员检查下操作系统中是否有注册这个Schema以及配置的appid是否正确。
04-07