公司动态

支付中台2-微信支付

📅 2026/7/17 9:31:37
支付中台2-微信支付
1. 微信支付流程1.1 支付方式付款码支付JSAPI支付小程序支付Native支付商家预先指定付款金额APP支付刷脸支付1.2 接入指引1.2.1 获取商户号微信商户平台https://pay.weixin.qq.com/操作步骤提交资料签署协议获取商户号1.2.2 获取APPID微信公众号平台:https://mp.weixin.qq.com操作步骤注册服务号服务号认证获取APPID绑定商户号对应的绑定关联1.2.3 获取API秘钥APIv2版本的接口需要此秘钥步骤登录商户平台选择账户中心安全中心API安全设置API密钥1.2.4 获取APIV3秘钥APIv3版本的接口需要此秘钥步骤登录商户平台选择账户中心安全中心API安全设置APIv3密钥随机密码生成工具https://suijimimashengcheng.bmcx.com1.2.5 申请商户API证书APIv3版本的所有接口都需要APIv2版本的高级接口需要如退款、企业红包、企业付款等步骤登录商户平台选择账户中心安全中心API安全申请API证书1.2.6 获取微信平台证书可以预先下载也可以通过编程的方式获取https://pay.weixin.qq.com/doc/v3/merchant/40120625241.3 支付安全1.3.1 基础概念明文加密前的消息叫“明文”plain text密文加密后的文本叫“密文”cipher text密钥只有掌握特殊“钥匙”的人才能对加密的文本进行解密这里的“钥匙”就叫做“密钥”key“密钥”就是一个字符串度量单位是“位”bit比如密钥长度是128就是16字节的二 进制串加密实现机密性最常用的手段是“加密”encrypt)按照密钥的使用方式加密可以分为两大类对称加密和非对称加密。解密使用密钥还原明文的过程叫“解密”decrypt加密算法加密解密的操作过程就是“加密算法”所有的加密算法都是公开的而算法使用的“密钥”则必须保密1.3.2 对称和非对称加密对称加密特点只使用一个密钥密钥必须保密常用的有AES算法优点运算速度快缺点秘钥需要信息交换的双方共享一旦被窃取消息会被破解无法做到安全的密钥交换非对称加密特点使用两个密钥公钥和私钥公钥可以任意分发而私钥保密常用的有RSA优点黑客获取公钥无法破解密文解决了密钥交换的问题缺点运算速度非常慢混合加密实际场景中把对称加密和非对称加密结合起来使用。1.3.3 身份认证公钥加密私钥解密的作用是加密信息私钥加密公钥解密的作用是身份认证1.3.4 摘要算法摘要算法就是我们常说的散列函数、哈希函数Hash Function它能够把任意长度的数据“压缩”成固定长度、而且独一无二的“摘要”字符串就好像是给这段数据生成了一个数字“指纹”。作用保证信息的完整性特性不可逆只有算法没有秘钥只能加密不能解密难题友好性想要破解只能暴力枚举发散性只要对原文进行一点点改动摘要就会发生剧烈变化抗碰撞性原文不同计算后的摘要也要不同常见摘要算法MD5、SHA1、SHA2SHA224、SHA256、SHA384例子publicstaticvoidmain(String[]args){try{MessageDigestmessageDigestMessageDigest.getInstance(MD5);// 反复调用update输入数据:messageDigest.update(aa.getBytes(StandardCharsets.UTF_8));byte[]resultmessageDigest.digest();System.out.println(newBigInteger(1,result).toString(16));}catch(NoSuchAlgorithmExceptione){e.printStackTrace();}}摘要算法的应用下载软件校验彩虹表问题数据安全性当然上面的操作也有问题的。如果黑客获取到了明文然后修改内容后重新生成了摘要。替换了原来的摘要。然后把信息传递到了李四处李四根据hash得到的摘要和传递的摘要比较发现是一样的。但是其实数据是已经修改过的了。这也就产生了数据安全问题。针对这个问题我们就需要通过数字签名来解决这个问题了。数字签名针对上面的问题我们可以对生成的摘要通过私钥加密处理。然后拼接在传递信息中。然后在服务器中根据公钥解密得到的摘要和正常的明文hash后的摘要信息比较是否相同如果相同就认为是正确的。上面的处理中。细心的小伙伴会发现其实公钥是很容易获取的黑客伪造了公钥然后你又从伪造网站获取到了公钥。这时就有问题了。数字证书数字证书解决“公钥的信任”问题可以防止黑客伪造公钥。不能直接分发公钥公钥的分发必须使用数字证书数字证书由CA颁发.CA证书认证机构服务器向CA申请数字证书需要提交相关的信息给CA机构。然后CA机构通过如下操作生成数字证书返回给你申请者在这个数字证书中包含的有申请者的公钥信息。然后申请者在传输信息时就会携带改数字证书。完整的处理流程数字证书案例-----https协议