android微信支付

来源:互联网 发布:word for mac迅雷下载 编辑:程序博客网 时间:2024/04/30 00:56

Http协议与请求

Post请求

  • Post请求与Get请求的区别
    • Get请求的参数是直接放在url后面的,而Post请求是放在请求体中的
    • Get请求参数的长度会根据浏览器的不同实现有一定限制,而Post请求参数长度没有限制
    • Get请求方便测试,直接输入地址即可,而Post请求不方便测试,需要借助代码或者工具进行发送
    • Get请求和Post请求没有本质的区别,只是定义上的区别,比如如果你非要将get方式的参数放在请求体中,那么服务器也是可以接收处理的,同样,你也可以将post方式的参数拼在url后面
  • Post请求的使用场景
    • 使用Post请求上传键值对
    • 使用Post请求上传json串
    • 使用Post请求上传单个文件
    • 使用Post请求上传多个文件


信开发平台创建时需要(签名,包名,图标),其中需要2个图标

微信支付成功回调通知在WXPayEntryActivity

Android中的数字摘要,加密和解密

数字摘要:是指通过算法将长数据变为短数据,通常用来标识数据的唯一性,是否被修改,常用的加密算法有md5和sha1,如安卓app的签名也是用这2种算法计算的;

md5由于具有不可逆性,也被用来作为密码加密,并且通常情况下为了让加密过程变的不可预测,我们会进行加盐操作,代码如下:

sha1也不可逆,比md5长度更长,所以更安全,但是加密的效率比md5要慢一些,如文件的秒传功能,以及相同的v4包冲突都是根据文件的sha1值进行比对的
  • 加密和解密,一般分为对称加密和非对称加密

    • 对称加密:
      • 密钥可以自己指定,只有一把密钥,如果密钥暴露,文件就会被暴露,
      • 常见对称加密算法有DES算法(Data Encryption Standard)和AES算法(Advanced Encryption Standard),
      • 特点是加密速度很快,但是缺点是安全性较低,因为只要密钥暴漏,数据就可以被解密了。
    • 非对称加密:有两把钥匙(密钥对),公钥私钥,公钥的话给别人,私钥自己保存
      • 常见非对称加密算法是RSA
      • 2把密钥通常是通过程序生成,不能自己指定
      • 特点是加密速度慢些,但是安全系数很高
      • 加密和解密的规则是:公钥加密只能私钥解密,私钥加密只能公钥解密
      • 应用场景举例:在集成支付宝支付sdk时,需要生成私钥和公钥,公钥需要设置到支付宝网站的管理后台,在程序中调用支付接口的时候,使用我们自己的私钥进行加密,这样支付宝由于有公钥可以解密,其他人即时劫持了数据,但是没有公钥,也无法解密。

3.支付的主要

(1).先生成与支付订单prepay_id

(2).生成签名参数

(3).发起支付

微信支付的流程
1. 注册微信开放平台,创建应用获取appid,appSecret,申请支付功能,申请成功之后会返回一些参数.
2. 下载微信支付sdk
3. 客户端请求订单,后台与微信后台交互,返回给客户端支付参数
4. 调用微信客户端,由微信客户端和微信服务器打交道;
5. 客户端和服务端都会收到支付结果;(前台消息不可靠,我们需要去后台验证,如果后台没有收到支付通知,后台去微信服务器验证然后将结果返回给客户端)
微信支付的对像是PayReq
微信开放平台上创建应用时需要的签名文件格式是MD5,
可以支持的签名格式

MD5、SHA1、SHA256、HMAC




原创粉丝点击