java实现网上在线支付--03_分析易宝支付网关的请求协议

本文主要分析了易宝支付网关的请求协议,包括buildHmac()方法用于生成MD5-HMAC,详细讲解了参数如商户编号、商品信息、银行编码等的使用,以及易宝的应答机制和状态判断。特别强调了参数顺序的重要性,错误的顺序会导致MD5码不正确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

03_分析易宝支付网关的请求协议 

1、buildHmac()方法用于生成md5-hmac

public static String buildHmac(String p0_Cmd,String p1_Merid,String p2_Order,String p3_Amt,
String p4_Cur,String p5_Pid,String p6_Pcat,String p7_Pdesc,String p8_Url,String p9_SAF,String pa_MP,
String pd_Frpid,String pr_NeedResponse,String keyValue){
	StringBuffer sValue=new StringBuffer();
	sValue.append(p0_Cmd);//业务类型,buy
	sValue.append(p1_Merid);//商户编号
	sValue.append(p2_Order);//商户订单号
	sValue.append(p3_Amt);//支付金额
	sValue.append(p4_Cur);//交易币种
	sValue.append(p5_Pid);//商品名称
	sValue.append(p6_Pcat);//商品种类
	sValue.append(p7_Pdesc);//商品描述
	sValue.append(p8_Url);//商户接收支付成功数据的地址,也就是支付成功后返回给商户数据的地址,因为这里使用引导浏览器的方式把数据给了商户的某个地址来接收,这种方式不是很好.一旦用户的浏览器出问题了,或者人为的暂停了浏览器.那么商户就没法收到易宝返回的数据。
	sValue.append(p9_SAF);//送货地址,用不到不可以传null,要传""空字符串
	sValue.append(pa_MP);//商户扩展信息,商户扩展信息,这个用来商户发给易宝什么数据
        当支付完成后,就原样返回这些信息.如果有些数据需要发给易宝,这些
        数据在支付完后,会按照原样返回这些信息,这里主要做为扩展的信息.
	sValue.append(pd_Frpid);//银行编码
	sValue.append(pr_NeedResponse);//应答机制0,1
	String 	sNewString =DigestUtil.hmacSign(sValue.toString,keyValue);//通过这句就可以把,要发送的信息,通过给定的密钥加密后发给易宝支付了.
	return sNewString;
}

2、a)sValue.append(p1_Merld)//当商户在易宝开通服务的时候,易宝会给商户,一个商户编号,和一个密钥.

b) sValue.append(p5_Pid);//商品名称

    sValue.append(p6_Pcat);//商品种类
    sValue.append(p7_Pdesc);//商品描述
     这部分是可选的.
c)银行编码:由易宝支付规定的.使用的时候要注意易宝支付的规范

d)应答机制:易宝支付通过两种并行的方式返回支付结果,这里应答机制有两种 0和1,应答机制

e)易宝的应答机制,主要是通过易宝的后台程序首先和商户服务器建立socket, 然后再给商户提供的用来接收支付结果
    数据的网址发送一个请求,如果返回的状态码为200,那么易宝就认为他已经把支付结果数据完整的交付给了商户。

f) 0 代表: 如果访问商户的地址,返回的200,就认为返回的已经成功了。

   1 代表: 不以200状态为判断依据,依据是商户的页面返回一个success字符串。如果商户返回了一个html页面,

页面中只有succes 这个代码,那么就代 表 把支付信息成功的通知给了商户,否则会不停的给商户发送支付状态信息,

直到易宝接收到商户返回的success这个信息为止。

g)一般设置为0,就可以了。

3、易宝支付,对顺序的要求很严,也就是.
  sValue.append(p0_Cmd);//业务类型,buy
  sValue.append(p1_Merld);//商户编号
  sValue.append(p2_Order);//商户订单号
  sValue.append(p3_Amt);//支付金额
  sValue.append(p4_Cur);//交易币种
  sValue.append(p5_Pid);//商品名称
  sValue.append(p6_Pcat);//商品种类
  sValue.append(p7_Pdesc);//商品描述
  这部分的顺序必须要按照上面写的顺序来,否则生成的md5码就不对了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值