java实现网上在线支付--02_分析易宝支付的工作流程

02_分析易宝支付的工作流程 

1.易宝支付的接入规范:
  交易过程的加密:MD5-hmac加密
  DigestUtil加密类:
  使用方法:StringBuffer sValue = new StringBuffer();
  sValue.append("lidewei");
  sValue.append("08129010");
  String hmacMD5 = DigestUtil.hmacSign(sValue.toString(),"123456");
  加密后生成一个32位的加密后的字符串。
  第一个参数为加密的原文,第二个参数为密钥。
  密钥:密钥是企业和易宝公司都知道的。


a.这里首先企业通过加密类对元数据加密,然后发给易宝,那么易宝也会对
  这段数据进行加密,加密之后会拿着加密后生成的字串和企业发送来的
  字串进行对比,如果一样的话那么说明信息没有被串改过,注意双方生成
  加密后元数据的时候,用的相同的密钥所以生成的加密后数据也应该是一
  致的.这样就可以验证元数据是否被改过。
b.支付流程

  1、通过http请求方式向易宝支付同关发起一个请求,

  请求可以是post、get

  请求地址:https://www.yeepay.com/app-merchant-proxy/node

  一般易宝要求页面要使用GBK/GB2312编码

  2、以下以post请求方式为例,

<form name="yeepay"  action = "https://www.yeepay.com/app-merchant-proxy/node" method="post">
   这里省略了一些请求参数
   <input type="hidden" name="p8_url" value="http://wwww.credream.com/payment/response">
   <!--MD5-hmac验证码-->
    <input type="hidden" name="hmac" value="2a8de8147356d97c364d1874410528dd">
</form>
  3.对交易流程的解析:

   (1).首先当企业需要交易的时候,会把自己需要发送给易宝支付的数据进行加密,
       value="2a8de8147356d97c364d1874410528dd"这是加密后的数据,
       http://wwww.credream.com/payment/response这是加密之前的元数据,
    (2).发给易宝的时候,需要把加密前和加密后的数据都发送给易宝。
        当易宝接收到企业的加密前的数据http://wwww.credream.com/payment/response
        时,会对数据进行加密:得到加密后的数据:2a8de8147356d97c364d1874410528dd
        然后会拿易宝进行加密后的数据,和企业向易宝发来的加密后的数据进行比对,如果
        相同的话,说明数据没有被串改过。

    (3).注意:企业和易宝都是用相同的密钥进行加密的。

  4.当验证成功的时候,易宝会把连接重定向到银行进行支付,当支付完成后,银行会
    返回到易宝支付,然后,易宝支付会把支付的结果返回给企业,企业接收到结果后
    会进行处理。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值