Hello,大家好,我是小黑哥~ 前端时间小黑哥在公司接手了一个支付项目,这个项目接入了微信、支付宝。这个项目开发下来,小黑哥可是完完整整体验了一下微信、支付宝开发流程,也踩了一些坑。 最近正好看到有些小伙伴想接入微信、支付宝,但是不知道如何开发,所以小黑哥就给大家总结一下微信支付、支付宝接入开发流程。 总体流程 明确使用支付方式 首先我们需要明确我们需要使用的支付方式。 因为微信支付、支付宝中存在很多支付方式,不同支付方式对应的不同的业务场景,开发对接复杂度也不太一样。 以微信支付举例,其总共提供如下几种的支付方式。 这几种支付方式对应的不同的业务场景,比如说: 付款码支付:商家使用扫码枪或其他扫码机具扫描用户出示的付款码,适合于线下商超收款 Native支付:商家在系统中按微信支付协议生成支付二维码,用户扫码拉起微信收银台,确认并完成付款 JSAPI 支付:用户在商家公众号内下单,输入密码支付,完成支付,适合于在线购物的场景 APP 支付:用户在商家的APP中下单,跳转到微信中完成支付,支付完后跳回到商家APP内,展示支付结果 H5 支付:用户在手机浏览器中下单,然后跳转到微信.... 不知道怎么接入微信支付、支付宝?可以看看这篇 支付系统
Hello,大家好,我是楼下小黑哥~ 今天继续分享支付系统相关的内容,这次分享一下如何支付路由系统实现方式。 其实这个话题去年也写过,不过当时没啥阅读量,这次就再次翻出来加工一下,炒下冷饭。 支付路由系统 提到路由,不免会想到网络通信过程中起到数据包转发的路由器。 而我们今天讲到支付路由系统,也是起到类似的作用。路由系统本身并不处理具体业务,它的作用就是将支付请求转发底层支付通道。 如上图所示,支付系统接入层,接收到支付请求之后,经过内部运算,最后将会通过路由系统转发给具体底层的支付通道。 另外,除了路由转发功能以外,路由器一般还会有一些额外的功能,比如防火墙等。 那我们其实也可以在支付路由系统加入额外功能,比如实时计算底层支付渠道的成功率,若低于一定的阈值,进行报警并且将该渠道下线。 这里需要说明一点,这里的路由系统可以是一个应用中子模块,也可以是一个单独子系统。 为什么需要路由系统 看到这里,可能会有一些小伙伴会思考,一定需要这个路由系统吗?直接将请求发给支付通道不好吗? 答案当然是可以的,如果当前只对接一两个支付渠道,这么做没问题,并且也推荐这么做。 这个阶段由于业务量不大,.... 从无到有,支付路由系统升级打怪之路 支付系统
Hello,大家好,我是小黑哥~ 前端时间小黑哥在公司接手了一个支付项目,这个项目接入了微信、支付宝。这个项目开发下来,小黑哥可是完完整整体验了一下微信、支付宝开发流程,也踩了一些坑。 最近正好看到有些小伙伴想接入微信、支付宝,但是不知道如何开发,所以小黑哥就给大家总结一下微信支付、支付宝接入开发流程。 总体流程 明确使用支付方式 首先我们需要明确我们需要使用的支付方式。 因为微信支付、支付宝中存在很多支付方式,不同支付方式对应的不同的业务场景,开发对接复杂度也不太一样。 以微信支付举例,其总共提供如下几种的支付方式。 这几种支付方式对应的不同的业务场景,比如说: 付款码支付:商家使用扫码枪或其他扫码机具扫描用户出示的付款码,适合于线下商超收款 Native支付:商家在系统中按微信支付协议生成支付二维码,用户扫码拉起微信收银台,确认并完成付款 JSAPI 支付:用户在商家公众号内下单,输入密码支付,完成支付,适合于在线购物的场景 APP 支付:用户在商家的APP中下单,跳转到微信中完成支付,支付完后跳回到商家APP内,展示支付结果 H5 支付:用户在手机浏览器中下单,然后跳转到微信.... 微信支付、支付宝最全接入指引,看完立刻就可以上手! 支付系统
封面送给我狗哥,今天终于大结局了!可伶我钦哥,这么惨了,最后还要把他写没了!! Hello,下午好,我是楼下小黑哥~ 今天的文章我们接着上次的话题,继续聊聊支付系统异常解决办法。 在上篇文章中「支付掉单异常解决方案」,我们主要提到的是支付过程中掉单的场景,用户明明付款成功,银行卡都扣款了,但是订单却还显示待付款。 而在今天的文章中,我们将聊到重复付款的异常,即同一笔订单,扣了用户两笔钱。 另外我们还将会提到另外一种异常,用户扣款成功,但是订单却支付失败的场景。 以上两种异常对于被扣款的用户来讲,使用体验极差,自己多付了钱,订单却还不成功。所以如果不及时处理这两类异常,那就真的等着被投诉吧。 重复付款异常 异常场景 重复付款异常一般常见于网银支付,微信支付,支付宝等这类需要跳转到一个支付网关页(网银支付),或者跳转到钱包 APP(支付宝、微信),从而异步完成扣款的支付场景。 这种支付场景下,只能通过接受异步通知才能知道支付结果,我们一般将其称为异步支付。 PS:有了异步支付,那么同步支付是什么? 其实同步支付指的就是调用支付接口之后,就可以立刻返回支付结果的,比如银行卡类快捷/代扣等.... 一笔订单,但是误付了两笔钱!这种重复付款异常到底该如何解决?|原创 支付系统
小黑碎碎念 Hello,大家好,我是楼下小黑哥~ 这个长假不知道大家玩的开心不?有没有出去玩就被堵在路上的? 哈哈,这个长假,我过的还是有点累( Ĭ ^ Ĭ )。 长假前两天都在加班迁移旧系统的历史数据,由于这个依赖我同事那边的迁移进度,所以第一天其实还好,就是划划水,优化一下程序,晚上还出去看了下『姜子牙』。 第二天的时候,又划了一天的,等到晚上的时候,同事终于把他那边的迁移搞定,我终于可以开始迁移。 可是这个时候甲方爸爸竟然开始加各种需求了,没办法,只能满足他们,临时再开始修改程序,然后再加上监控,一直搞到了12 点。 搞完这下,本来以为没啥幺蛾子了,长假只要每天看看迁移进度就可以了。 哎,没想到设计的时候忘记考虑性能的问题,等到数据量增长到千万的时候,查询速度奇慢,无奈只好优化程序,想办法让查询加快,最后一直搞到了凌晨四点 ┭┮﹏┭┮ 真的是设计不规范,加班两行泪啊~后面有机会跟大家复盘一下这次大数据量迁移。 前言 好了,回归到今天的主题,今天分享一下支付系统中异常一些处理方式。 其实这些处理方式并不只是局限于支付系统,也可以适用于其他系统,大家可以借鉴,应用到自己系统中,提高.... 有更新! 钱被扣走了,但是订单却未成功!支付掉单异常最全解决方案 架构设计
上次的文章手机没网了,却还能支付,这是什么原理?发布之后,没想到大家都比较感兴趣,所以反响还不错。 另外这篇文章还被码农翻身公号改编成漫画漫画:如何盗刷别人的支付宝?,嘿嘿不得不说,还是刘欣老师讲解的更加清晰明了。 现在这篇文章阅读数据已经破千,虽然对于其他号主来说还是很少的数据,但是对于我来说,真是第一个里程碑,期待后面越来越好~ -------------------------我是分割线------------------- 好了,不 BB 了,今天跟大家分享一下聚合收款码的支付原理,这也是我这大半年来一直在做的项目。 微信/支付宝收款码大家应该不会陌生,线下小微商户收款大多使用这个,就比如下图。 这种收款方式很方便,微信、支付宝后台申请开通,然后还可以免费申请相关物料。 不过这种方式用户体验其实不是很好,之前有好几次拿出支付宝,却扫了微信支付码。 另外,这种个人的收款码通常还有单日收款的上限,比如支付宝单日上限 500元。 有了需求,自然会有聪明人人想到解决方案,于是有了聚合收款码产品解决方案,如下图。 一个收款码,支持多种客户端,主流是微信、支付宝,现在常见还会支持银联,.... 有更新! 收款神器!解读聚合收款码背后的原理|原创 支付系统
支付系统一般需要对接多个支付渠道,一是为了保证系统的可靠性,不能因为单一渠道的问题影响整个支付系统。二是为了提高支付能力,不同渠道提供支付能力不同。三是为了降低支付成本。 对接多个支付渠道以后,为了可以正确选择支付渠道支付,因此设计渠道路由系统。 从上图可以看到路由系统功能其实很简单,分发支付请求到正确的渠道。但就是这个简单系统,也经过几次系统改造升级,最终才成为现在的样子。下面就来说说这个系统是如何演进。 下面假设对接支付渠道为支付宝与微信。 初期 支付系统初期,这个阶段业务需求较简单,仅仅需要满足一个支付场景(例如使用支付宝支付)。为了快速上线,设计方案就简单粗暴,对外直接暴露支付服务接口,由业务系统发起直接调用。 系统设计图如下: 这个阶段由于只有一个支付渠道,所以也不需要有路由系统,直接由业务系统调用支付服务接口发起支付。 这个设计方案存在很多问题: 业务系统与支付系统位于同一个系统,系统任何一次变更都会影响整个系统。 扩展性问题。接入新支付渠道,如微信,需要新暴露一个微信支付服务接口。业务系统需要改动代码。从另一方面讲,业务系统承担路由系统的功能。 复用性。新支付渠.... 有更新! 支付渠道路由系统进化史 支付系统
前言 对账系统作为支付系统中的基石系统,处于整个支付环节中的最后一层,主要用来保证我方支付数据与第三方支付渠道或银行的数据一致性。 在没有对账系统之前,财务在第二日手工核对前一日的应收与实收。倘若不一致,这就需要一一核对数据,找出不一致的数据。对账系统出现之后,就可减少以这种繁琐手工操作,财务只需要每天关注系统的对账记录,释放了生产力。 本文主要结合实际的项目经验,聊聊对账系统的设计方案。 系统整体设计 对账系统设计主要分为以下四个模块: 渠道数据处理模块 数据处理模块 核对模块 差异数据处理模块 模块调用顺序层次图如下。 下面先来介绍渠道数据处理模块。 渠道数据处理模块 这个模块主要负责渠道对账文件的下载,解析,以及数据落库。 目前市面上第三方支付渠道对账文件下载方式主要分为以下几类: 第三方渠道定时推送到 SFTP/FTP。这种模式比较简单,我们定时从 SFTP/FTP 取对账文件。 调用第三方渠道对账文件下载接口。这种模式需要对接渠道下载对账文件接口,定时调用下载。支付宝与微信为该模式。 手动在支付渠道网站下载对账文件。这种模式最不友好,需要我们花费人力下载文件。 除了.... 有更新! 从零开始设计对账系统 支付系统