西米支付:支付宝/微信支付/银联支付通道的接入介绍

本文以电脑网站支付为例,着重对第三方支付通道的接入进行了分析,包括支付宝支付接入、微信支付接入及银联支付接入。

  1、支付宝支付接入

  支付宝支付能力主要有当面付、刷脸付、App支付、手机网站支付、电脑网站支付和花呗分期等,本文采用电脑网站支付实现聚合支付系统的支付宝支付功能。

  要在应用中开通电脑网站支付能力首先需要登录支付宝开放平台在开发者中心创建应用并且申请开通相关开放产品使用权限,为了保证交易双方的身份和数据安全,开发者在调用接口前需要配置双方密钥对交易数据进行双方校验。如下图1所示为支付宝开发接入流程简单示意图。

图1 支付宝支付开发接入流程

  支付宝开发平台支持RSA(SHAlWithRSA)和RSA2(SHA256WithRSA)两种签名算法,RSA2签名算法比RSA有更强的安全能力。签名的过程即生成签名方将传送的消息用私钥加密的过程,验签则是指验签方使用公钥对消息进行验证的过程。签名和验签的具体内容如下:

  生成签名方:首先对参数放入一个字符串数组signFields,将参数和值保存在一个对象或Map里,通过JSONObject将其变更为JSON对象,接着是签名原文的生成,在生成的过程中可以通过Java的Arrays.sort实现参数按照字典的次序进行排序,继而通过RSA的私钥对其实施签名。

  验签方:与签名构建方一样先生成签名原文,其次通过RSA的公钥生成签名方传入的签名,把签名原文对生成签名方传入的签名进行验证,验证结果为true则表示验证成功。

  应用创建、应用配置以及SDK集成并配置完成后就可以调用具体的接口了。

  如下图2所示为支付宝电脑网站支付的接口调用时序图。

图2 支付宝电脑网站支付接口调用时序图

  其中returnUrl表示同步回调即前台通知:第三方支付系统以浏览器重定向的形式将支付结果返回给商户端。notifyUrl表示异步通知即后台通知:第三方支付系统使用类似于HttpClient技术调用商户接口进行通知。前台通知的作用主要是提示给用户支付的状态,异步通知将支付结果安全的推送给商户端从而进行修改对应的订单状态,支付是否成功以异步通知为准。

  2、微信支付接入

  微信支付主要支持付款码支付、Native支付、JSAPI支付、APP支付、H5支付和小程序支付等,本文采用微信Native支付实现聚合支付系统的微信支付功能。

  如下图3所示为微信支付开发接入流程简单示意图。

图3 微信支付开发接入流程

  其中,微信Native支付可分为两种模式,商户可根据支付场景选择相应的支付模式。本文采用的是微信Native支付中的模式二,模式二与模式一相比流程更为简单,不依赖设置的回调支付URL。为了保证交易双方数据的安全性,需要对发送的数据进行签名,签名算法可以采用MD5算法或者HMAC-SHA256算法,请求和接收数据均需要校验签名,具体的签名方法如下:

  第一步,用集合M表示全部发送或者接收到的内容,按参数名ASCII码从小到大以字典序将集合M内非空参数值的参数进行排序,根据URL键值对的格式(即 keyl=valuel&key2=value2...)拼接成字符串 stringA。

  第二步,将key拼接至stringA结尾生成字符串stringSignTemp,同时使用MD5算法或HMAC-SHA256算法实施对stringSignTemp的计算,接着把运算结果中所有字符变更成大写,从而得到sign值sign Value。

  要接入微信支付开发者还需要集成服务端SDK,应用创建、支付申请以及SDK集成并配置完成后就可以调用具体的接口了。如下图4所示为微信Native支付的支付接口调用时序图。

 

图4 微信Native支付接口调用时序图

  3、银联支付接入

  银联支付主要支持在线网关支付、无跳转支付、手机网页支付以及企业网银支付等,本文采用的支付方式是银联全渠道支付的在线网关支付。如下图5所示为银联支付开发接入流程简单示意图。

图5 银联支付开发接入流程

  要为应用开通银联在线网关支付能力,开发者首先需要登陆到银联官网进行注册登陆并申请入网,然后申请获取签名证书、验签证书以及敏感信息加密证书等相关证书,签名证书和验签证书的使用方法如下:

  签名证书:首先通过key=value的方式根据名称来将报文里签名域(signature)以外的全部数据元排序,并且使用“&”将其拼接成待签名串。此外,使用SHA-256算法对待签名串进行摘要运算,通过银联颁发的签名证书中的私钥以及SHA-256签名算法对摘要进行签名运算。

  然后对签名串进行Base64编码操作并放入签名表单域中,而后利用HTTP Post的传输形式把签名表单域连同其他表单域一块传输至银联支付平台。

  验签证书:首先通过key=value的方法将报文中签名域(signature)以外的全部数据元根据名称实现升序排序,并且使用“&”将其拼接成待签名串。除此之外,还需要使用SHA-256算法对待签名串执行摘要运算,然后还需要通过在银联申请的验签证书里的公钥对摘要以及报文中的签名信息执行签名验证运算。

  要接入银联在线网关支付还需要在项目中集成并配置银联SDK,应用创建、入网申请、证书获取以及SDK集成并配置完成后就可以调用具体的接口了。如下图6所示为银联网关支付的支付接口调用时序图。

 

图6 银联在线网关支付接口调用时序图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/38497.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网关支付、银联代扣通道、快捷支付、银行卡支付等网上常见支付方式接口说明

一、网关支付 这是在线支付的最普遍形式。 大致支付过程:第三方支付公司作为代理(网关),接入一堆银行。用户在网关页面(可以在商户端,也可以第三方支付平台端)选择银行,页面跳转到第…

HTB soccer

title: HTB_soccer description: HTB靶机 难度:easy date: 2023-05-31 categories: [渗透,靶机] HTB soccer 如果图片转载有问题移步:https://qing3feng.github.io/2023/05/31/HTB%20soccer/ 信息收集 ┌──(kali㉿kali)-[~] └─$ sudo nmap --min…

提高WhatsApp营销效果(1):文案篇

// 综述 在WhatsApp上做营销,最主要有四个因素会影响到转化的效果 分别是: ■ WhatsApp的发送者 ■ 文案 ■ 投放时段 ■ 目标号码 对于发送者来讲,主要影响因素是发送者所在的国家、头像和昵称。 投放时段来讲,自然是在用…

港联证券|半导体接棒AI走强 科创50指数领涨

周四,A股三大指数大幅低开,随后反弹并环绕上一买卖日收盘指数打开震动。沪指收报五连阳,半导体概念股团体大涨带动科创50指数走强,4月以来科创50指数已涨超6%。CPO概念股继续活泼,贵金属板块涨幅居前,AI使用…

【汇正财经】沪深创集体红盘,算力股全线爆发

盘面回顾: 大盘日K线收星涨0.31%,深成指涨0.61%,创业板冲高翻绿再弹起,收盘涨0.2%。CPO概念股午后继续大涨,算力概念股全线爆发,AI芯片、ChatGPT概念、电商概念等科技板块交投活跃,酒店餐饮、钙…

微信小程序会员卡开发跳坑

看了一下文档,大概是这样一个函数,可以让用户领取会员卡 wx.navigateToMiniProgram({appId: wxeb490c6f9b154ef9, //固定为此 appid,不可改动extraData: data, // 包括 encrypt_card_id, outer_str, biz三个字段,须从 step3 中获…

使用uni-app生成微信小程序踩的坑

毕设要求写一个浏览器端,一个APP端,一个微信端,刚开始以为要学三个技术然后写三个客户端,后来知道了uni-app这个神器,一次编写就可以编译生成APP、H5以及各种小程序版本的客户端。然而我比较熟悉的是web的前端开发&…

uni-app APP端-微信登录流程

uni-app APP端-微信登录流程 手把手教学 1.前期准备 在微信开放平台注册账户 微信开放平台 (qq.com)在管理中心中创建移动应用项目,按要求填写相关信息审核通过后即可获得我们所需的 AppID和AppSecret然后才uniapp项目中填写,在manifest.json中的App模…

微信小程序开发笔记 进阶篇②——多个微信小程序一个用户体系,同一个UnionID

目录 一、前言二、微信开放平台绑定小程序三、微信小程序login和getUserInfo四、后台请求auth.code2Session五、后台解密开放数据 一、前言 微信小程序开发笔记——导读 二、微信开放平台绑定小程序 微信官方文档:UnionID 机制说明 我们目前有一个微信开放平台&am…

微信小程序登录,包括uniapp的微信小程序登录

代码&#xff1a; 样式&#xff1a; <button click"login">登入</button> 事件&#xff08;methods中&#xff09;&#xff1a; login() {//判断缓存中是否有用户数据&#xff08;也就是判断有没有登录&#xff09;if (!uni.getStorageSync(encrypte…

桔子拓客是什么?

桔子拓客软件是一款安装在手机上APP智能营销软件&#xff0c;启动软件后可不停的活跃帐号&#xff0c;推送作品给指定的人群&#xff0c;指定区域&#xff0c;以此来达到精准曝光&#xff0c;定向引流&#xff0c;帮助用户实现流量的暴增&#xff01; 桔子拓客软件采用非入侵式…

做一个和瑞幸咖啡一样的小程序,就能3月赚24亿了吗?

2017年我开了一家咖啡店&#xff0c;疫情之前门店生意还比较惬意和滋润&#xff0c;没想到这疫情突如其来&#xff0c;一度要关门大吉。 后来偶然间看到瑞幸咖啡的年度报表&#xff0c;还有5月24日&#xff0c;瑞幸咖啡公布了2022年第一季度业绩&#xff0c;总净收入为24.046亿…

揭秘爆款的小程序,为何一黑到底

文章目录 前言⛳️ 1.什么是小程序?⛳️ 2.小程序发展史⛳️ 3.小程序原理⛳️ 4.如何开发微信小程序⛳️ 5.小程序的学习资源⛳️ 6.第一个微信小程序 前言 小程序&#xff0c;由于其便捷的操作&#xff0c;以及丰富的功能&#xff0c;已经普及到了生活中的各个领域,有很多人…

开始第一个基于uni-app的微信小程序开发

微信小程序 uni-app开发工具创建uni-app项目运行项目页面显示以及调试 uni-app uni-app 是一个使用 Vue.js 开发所有前端应用的框架&#xff0c;开发者编写一套代码&#xff0c;可发布到iOS、Android、H5、以及各种小程序&#xff08;微信/支付宝/百度/头条/QQ/钉钉/淘宝&#…

微信小程序开发大坑盘点

微信小程序开发大坑盘点 起因 前几天心血来潮&#xff0c;想给学校设计个一站式校园小程序&#xff0c;可以查询成绩&#xff0c;考试信息&#xff0c;课表之类的&#xff08;本来想法里是还想包括一些社交功能的&#xff0c;但这个因为资质问题暂且搁置了&#xff09;。其实…

那些年我们在微信小程序遇到的坑

前言 本篇主要记录一下我在开发中遇到的小程序的坑&#xff0c;还有实现的功能。 避坑 坑一&#xff1a;开发工具配置 &#xff08;1&#xff09;控制台如果报proxy代理相关错误&#xff0c;先检查左上角菜单栏中设置>代理设置>使用系统代理 &#xff08;2&#xff09…

使用uniapp微信公众号和小程序踩坑全过程

什么是微信公众号&#xff1f;它的本质是什么 什么是微信公众号 微信公众平台&#xff0c;简称公众号。曾命名为“官号平台”、“媒体平台”、微信公众号&#xff0c;最终定位为“公众平台”。 微信公众号包含了&#xff1a;订阅号&#xff0c;服务号和企业号&#xff0c;各…

多端开发框架uni-app入坑指南,一套代码适用微信、头条等小程序

前言 hello 小伙伴们&#xff0c;现在我已经正式入坑 uni-app 了。uni-app 已经发布好几个月了&#xff0c;期间也是踩坑无数&#xff0c;但是官方秉承着不抛弃不放弃的精神&#xff0c;积极解决开发者的各种简单的、复杂的问题&#xff0c;在此表示感谢。我想还有小伙伴正在持…

基于uniapp开发 微信小程序登陆页面一

此微信登陆页面是参考uniapp开发文档 uniapp一键登录和button组件中的getphonenumber方法 代码展示 <template><view class"login-container"><buttonclass"btn-login"open-type"getPhoneNumber"getphonenumber"handleLog…

uniapp之微信小程序开发——目前遇到的坑

文章目录 微信小程序开发教程目录写在开头所谓的坑1. main.js你最好别瞎改2. uniapp中创建云函数3. 云函数安装其他npm依赖包4. 小程序端API和服务端API有何异同5. 去除button默认样式6. 组件中使用v-if不能用7. websocket使用 总结 微信小程序开发教程目录 正篇 1 【约球onli…