大家好,我是一安,最近在学习有关微信&支付宝支付相关的课程,顺便也整理一下,供大家学习参考
微信支付完整效果图:
支付宝支付完整效果图:
第一天(微信支付)
本案例是以Native支付为基础
微信支付产品介绍
付款码支付
用户展示微信钱包内的“付款码”给商家,商家扫描后直接完成支付,适用于线下面对面收银的场景。
JSAPI支付
-
线下场所:商户展示一个支付二维码,用户使用微信扫描二维码后,输入需要支付的金额,完成支付。 -
公众号场景:用户在微信内进入商家公众号,打开某个页面,选择某个产品,完成支付。 -
PC网站场景:在网站中展示二维码,用户使用微信扫描二维码,输入需要支付的金额,完成支付。
小程序支付
在微信小程序平台内实现支付的功能。
Native支付
Native支付是指商户展示支付二维码,用户再用微信“扫一扫”完成支付的模式。这种方式适用于PC网 站。
APP支付
商户通过在移动端独立的APP应用程序中集成微信支付模块,完成支付。
刷脸支付
用户在刷脸设备前通过摄像头刷脸、识别身份后进行的一种支付方式。
接入指引(Native支付)
获取商户号
微信商户平台:https://pay.weixin.qq.com/
步骤:提交资料 => 签署协议 => 签署成功登录 => 账户中心 => 获取商户号(登录账号)
获取APPID
微信公众平台:https://mp.weixin.qq.com/
步骤:注册服务号 => 服务号认证 => 获取APPID => 登录微信商户平台 => 产品中心 => 绑定商户号
获取API秘钥
注意:APIv2版本的接口需要此秘钥
步骤:登录商户平台 => 账户中心 => 安全中心 => API安全 => 设置API密钥
获取APIv3秘钥
注意:APIv3版本的接口需要此秘钥
步骤:登录商户平台 => 账户中心 => 安全中心 => API安全 => 设置APIv3密钥
随机密码生成工具:https://suijimimashengcheng.bmcx.com/
申请商户API证书
APIv3版本的所有接口都需要;APIv2版本的高级接口需要(如:退款、企业红包、企业付款等)
步骤:登录商户平台 => 账户中心 => 安全中心 => API安全 => 申请API证书
获取微信平台证书
可以预先下载,也可以通过编程的方式获取。
注意:以上所有API秘钥和证书需妥善保管防止泄露
支付安全(证书/秘钥/签名)
信息安全的基础 – 机密性
对称加密和非对称加密
对称加密
特点:只使用一个密钥,密钥必须保密,常用的有 AES算法 优点:运算速度快 缺点:秘钥需要信息交换的双方共享,一旦被窃取,消息会被破解,无法做到安全的密钥交 换 非对称加密
特点:使用两个密钥:公钥和私钥,公钥可以任意分发而私钥保密,常用的有 RSA 优点:黑客获取公钥无法破解密文,解决了密钥交换的问题 缺点:运算速度非常慢 混合加密
实际场景中把对称加密和非对称加密结合起来使用
身份认证
公钥加密,私钥解密的作用是加密信息:私钥加密,公钥解密的作用是身份认证:
摘要算法
摘要算法就是我们常说的散列函数、哈希函数(Hash Function),它能够把任意长度的数据“压缩”成 固定长度、而且独一无二的“摘要”字符串,就好像是给这段数据生成了一个数字“指纹”。
作用: 保证信息的完整性,无法保证机密性 特性:
不可逆:只有算法,没有秘钥,只能加密,不能解密 难题友好性:想要破解,只能暴力枚举 发散性:只要对原文进行一点点改动,摘要就会发生剧烈变化 抗碰撞性:原文不同,计算后的摘要也要不同 常见摘要算法:MD5、SHA1、SHA2(SHA224、SHA256、SHA384)
数字签名
数字签名是使用私钥对摘要加密生成签名,需要由公钥将签名解密后进行验证,实现身份认证和不可否认
数字证书
数字证书解决“公钥的信任”问题,可以防止黑客伪造公钥。
不能直接分发公钥,公钥的分发必须使用数字证书,数字证书由CA颁发基本组成:
生成证书:
基本流程:
https协议中的数字证书:
微信APIv3证书
商户证书:商户API证书是指由商户申请的,包含商户的商户号、公司名称、公钥信息的证书。
商户证书在商户后台申请:https://pay.weixin.qq.com/index.php/core/cert/api_cert
平台证书(微信支付平台):微信支付平台证书是指由微信支付负责申请的,包含微信支付平台标识、公钥信息的证书。商户可以使用平台证书中的公钥进行验签。
平台证书的获取:https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay3_0.shtml
API密钥和APIv3密钥
都是对称加密需要使用的加密和解密密钥,一定要保管好,不能泄露
API密钥对应V2版本的API
APIv3密钥对应V3版本的API
号外!号外!
如果这篇文章对你有所帮助,或者有所启发的话,帮忙点赞、在看、转发、收藏,你的支持就是我坚持下去的最大动力!
List<? extends T>与List<? super T>的区别
原文始发于微信公众号(一安未来):微信&支付宝支付介绍 第一天
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/44553.html