一文带你了解微信/支付宝支付的相关概念

今天写了一篇非技术文,需求来源于老大的老大,老老大。

这偏文章用以说明微信/支付宝相关参数之间错综复杂的关系,所有资料来自微信/支付宝官网,以及相关银联给的微信/支付宝对接文档。

嘿嘿,如果同行的小伙伴,也有这个疑惑,希望本篇文章帮你解惑。

微信

名词解释:

  • appid:公众号、小程序、移动应用唯一标识
  • mchid:商户申请微信支付后,由微信支付分配的商户收款账号。
  • openid,微信用户在公众号 appid 下的唯一用户标识,可用于永久标记一个用户
  • sub_appid:子 appid,服务商模式/银行服务商模式起作用
  • sub_mch_id:子商户号, 服务商模式/银行服务商模式起作用
  • sub_openid:子 appid 下的唯一标识
  • channel_id:服务商模式下,微信支付分配给收单服务商的ID

微信支付接入可以分为

  • 普通商户
  • 服务商模式
    • 普通服务商
    • 银行类服务商

银行类服务商与普通类服务商的最大区别在于,普通类服务商不能清算资金,微信将会直接把资金清算给商户账户。

而银行类服务商是可以为下属特约商户清算资金的。

现有银行类服务商实际上是通过银联/网联转接微信

银行服务商省申请资质要求较高,一般只有银行、支付机构可以申请成为银行类服务商。两者申请要求如下:

官网地址:https://pay.weixin.qq.com/partner/public/home

普通商户

普通商户模式下,商户需要向微信申请 appid 以及 mchid。接入微信普通商户版本的支付接口。

文档地址:https://pay.weixin.qq.com/wiki/doc/api/index.html

JSAPI 支付模式,需要提前登陆授权,需要获取用户的 openid。三者关系如下图:

同一个 mchid 可以绑定多个 appid,两者可以是同一个公司主体,也可以不同公司主体(限定资格开放)。mchid 最多可以绑定 50 个 appid

同一个 appid 又可以被多个 mch id 绑定,不过需要注意的是,mchid 费率必须不相同。

所以 appidmchid 原则上是多对多的关系。

这里需要注意,微信清算资金实际上是基于 mchid。即同一个 mchid,使用多个 appid 做交易,第二天资金是清算到 mchid 绑定的商户的账户。

服务商模式

第三方服务商向微信申请自己的 appid,并通过 appid 申请服务商mch_id,以此获得微信支付服务商能力。再通过服务商 mch_id 为所服务的特约商户申请创建微信支付 sub_mch_id,创建好的 sub_mch_id 默认和服务商的mch_id 建立父子授权关系。银行服务商模式可以通过接入入驻特约商户,而普通服务商只能通过页面入驻。

服务商模式下,可以配置特约商户使用自己申请 appid,传入 sub_appid 字段。

官方解释:

sub_appid 可为公众号,APP 或小程序的 appid,服务商在服务商商户平台可手动为每个特约商户绑定与渠道商主体或特约商户主体一致的公众号,APP或小程序的appid;针对小程序,还支持绑定服务商主体的小程序 appid。目前最多配置5个. 手工配置路径:”服务商商户平台-服务商功能-子商户管理-开发配置-特约商户appid 配置

服务商模式下使用 JSAPI,若特约商户想基于自己 appid 做交易,可以基于特约商户 appid 登陆授权获取 openid,然后传入 sub_appidsub_openid

若没传入,只能使用服务商 appid 登陆授权,获取 openid

总结

普通商户模式,需要商户自己开发团队对接微信。而服务商模式,一般有服务商开发自己的收款功能,特约商户入驻即可使用,无需二次开发,适合个人/小微企业。另外服务商也可以提供包装之后的接口,有开发的能力也可以接入。

微信帮助文档

https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_10&index=1#

https://pay.weixin.qq.com/static/pay_setting/appid_protocol.shtml

支付宝

名词解释:

  • app_id:支付宝分配给开发者的应用 ID
  • 商户 uid/pid:支付宝商户号
  • buyer_id:买家的支付宝唯一用户号(2088开头的16位纯数字)
  • org_pid:银行服务商模式下,收单机构(例如银行)的标识,填写该机构在支付宝的 pid
  • merchant_id,银行服务商模式下,特约商户入驻成功之后,分配商户号

支付宝接入分为:

  • 普通商户
  • 服务商
    • ISV:独立软件开发商
    • 银行类服务商

支付宝银行类服务商与微信类似,服务商可以自己清算资金。

不过支付宝的这个模式比较简单,服务商只需要通过后台接口入驻特约商户成功,得到支付宝分配的商户编号。交易时上送商户编号与机构编码即成功。

普通商户

普通商户需要向支付宝申请入驻,将会得到商务号。接着需要创建应用得到 appid,上架成功后,需要进行签约。签约成功之后,这个 appid 与商户号建立唯一的绑定的关系。

同一个商户号可以绑定多个 appid,但是同一个 appid 只能绑定唯一个商户号。

其实从支付宝的接口也可以看出,支付宝只要求传入 appid,后台肯定是跟库 appid 查找对应的商户号。

这点虽然没有微信灵活,但是支付宝理解起来简单。微信 appidmchid 多对多的关系,有点复杂。

银行类服务商

这里服务商直接触过银行类服务商,其他类型服务商不太清楚。

银行类服务商交易接口与普通商户模式相比,仅仅多出了 **merchant_id **与 org_pid,其他信息与普通商户的接口一致。

总结

同微信。

ps:虽然支付宝官网上文档倒是挺多的,但是就是没有找到说的很明白的文档。。。这一点微信还是挺舒服的,示例图画的很清晰,赞一个 ?( ′???` )比心。

帮助资料

https://docs.open.alipay.com/200/105314/

https://opendocs.alipay.com/isv/10272/ru478a

欢迎关注我的公众号:程序通事,获得日常干货推送。如果您对我的专题内容感兴趣,也可以关注我的博客:studyidea.cn

原文地址:https://www.cnblogs.com/goodAndyxublog/p/12436075.html

时间: 2024-10-08 23:07:28

一文带你了解微信/支付宝支付的相关概念的相关文章

iOS开发笔记14:微博/微信登录与分享、微信/支付宝支付

产品中接入了微博/微信的第三方登录分享功能.微信和支付宝的第三方支付功能,之前在开发过程中涉及到这些部分,于是抽空将接入过程梳理了一遍. 1.微博.微信.支付宝SDK相关接入设置 (1)微博SDK SDK下载 设置URL Scheme,用于从第三方应用或浏览器中启动app 将SDK添加到工程中(支持CocoaPods),app启动时(didFinishLaunchingWithOptions)注册appkey 重写AppDelegate 的handleOpenURL和openURL方法,其它引用

app微信支付宝支付后台的插件模式+回调通过spring广播处理后续业务(已亲测可用)

写在前面的话:每当我们做一个项目,基本上都会涉及到支付的业务,最常用的莫过于微信和支付宝的支付了,项目有bug,有问题,都不叫问题,可一旦钱出了问题,那就是大问题了,所以在支付业务上我们必须慎之又慎! 但是我们做开发的,并不是在一个项目中完成支付模块就万事大吉了,在下一个项目中,我们是不是又要将支付模块的代码复制粘贴一遍,然后再重改支付模块?这样的坏处是频繁修改支付模块难免出现一些我们自己都意识不到的问题,一旦暴露在一些不怀好心的又懂技术的人面前,那我们哭都不知道去找谁. 所以,我试着通过利用s

第三方聚合支付vs微信支付宝支付,有何区别?

自移动支付逐步取缔了现金支付后,现在我们在商户的收银台上会看到各种二维码牌,一般比较经常看到的主要是微信L牌.支付宝二维码L牌,有部分商户会直接打印二维码帖子在桌面上.现在很多人估计会听到有些朋友是做微信和支付宝的移动支付,那么他们所说的做微信和支付宝的移动支付究竟是什么?聚合支付品牌有哪些?微信作为聚合支付品牌国内支付龙头企业,根据微信在2018年发布的<2018微信年度数据报告>显示,2018年,微信每个月有10.82亿用户保持活跃,每天有450亿次信息发送出去,每天有4.1亿音视频呼叫成

对于微信支付宝支付的总结

好久没写博客了,从今天起坚持写博客作为一个一天的反思总结,也希望能帮到别人,这一个月来主要是做的支付宝JavaMD5的在线支付,和微信的Java扫码支付. 先做的是支付宝,官网给提供接口,但是把接口导入进myeclipse中有感叹号,感叹号除了后又有叉号,客服说不影响使用,但有个叉号看着不舒服,在problem中找到错误一顿百度,问题解决,开始正式开发,官网给提供了接口所以开发者做的无非是传参数,关键是传不对啊,又联系客服,客服说你传的参数有问题,他是可以在支付宝服务器那看到你传的参数的,这我就

个人兔签微信支付宝支付接口

ubb http://www.sjmoban.com/sucai/52.html?tguserid=367 安装步骤 第一步.下载以后,将说明文件中的两个sql语句,放在1.系统->备份与恢复数据->执行sql语句,将下面两个语句放进去,执行. 第二步.打开,其他->在线支付->管理支付接口,配置lskpay,填写以下信息. 第三步.从http://www.amicm.com注册一个会员,新增网站,获取以上信息即可. 测试地址 http://tph.23zu.cn/e/member

微信支付,支付宝支付,银联支付——三大支付总结

转载:  https://juejin.im/post/596d97576fb9a06bb874a812 银联支付,支付宝支付,微信支付的三大总结,之前也有写过两篇. 微信支付,支付宝支付,银联支付--三大支付总结: http://blog.csdn.net/androidstarjack/article/details/72669394 支付宝植入总结: android 支付宝的植入 <曾经踩过的坑> 微信支付总结: Android 微信支付总结 备注:出于安全考虑,验签我们都是放到后台进行

腾腾流氓,云云更流氓(问微信怎样接入支付宝支付),手贱的赶紧点,你会感谢我的

草原上的两匹马! 打从当年微信开始布局公众号之初时,估计就已经想到了与支付宝正面冲突的场面,所以微信先来个瞒天过海,在春晚搞了个微信红包,那叫一个火呀,此时的云云隐隐感觉到些许不安. 早期的微信开发者可能都知道,微信公众号刚开始的时候接入支付要交巨额的保证金,根据行业不同,金额也不同,但也有大几万呢.这让很大一部分微型企业望而却步(老子创业时,注册公司的注册资金都免了,用个支付,你还要保证金),所以,大家果断用支付宝. 这样一来,腾哥的如意算盘算是打到自己脚面了,本打算可以用企业交的保证金拿去做

微信公众号中的支付宝支付与微信支付

一般,在微信公众号中的商城都是需要支持微信支付和支付宝支付的,当然,较大的公司对于鹅厂和阿里的站队就不说了,所以这里简单记录一下支付宝支付和微信支付的主要流程.说是简单介绍,这是因为确实不难,因为前端在这方面,包括微信授权登陆这一块需要做的都不是很多,而主要的工作量都在后端部分. 支付宝支付 无论是支付宝支付还是微信支付,最开始的步骤当然是将商品列表.商家相关信息.用户remark.运费.总价等等支付需要的信息通过post请求向后端传递,这里介绍支付宝支付,所以假设用户选择的是支付宝支付,那么后

微信支付宝扫码支付相关接口

微信支付宝扫码支付相关接口 ##################支付宝扫码支付################## 当面付--扫码支付:商户专柜或者收银台打印或者副屏展示支付宝二维码,用户使用支付宝钱包扫码工具扫描二维码,并在手机端完成付款. 文档中心:http://doc.open.alipay.com/doc2/detail?spm=0.0.0.0.E3tvGh&treeId=26&articleId=103286&docType=1SDK下载地址:http://doc.ope