java实现网上在线支付--03_分析易宝支付网关的请求协议
2017-02-23 17:56
405 查看
03_分析易宝支付网关的请求协议
1、buildHmac()方法用于生成md5-hmac
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码就不对了.
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码就不对了.
相关文章推荐
- java在线支付---03_分析易宝支付网关的请求协议
- java实现网上在线支付--09,10,11,12_分析易宝支付网关的应答协议与处理代码,完成用于处理支付响应的Servlet的初步编写和调试,完成处理支付网关响应结果的Servlet,支付实现
- java在线支付---03_分析易宝支付网关的请求协议
- java在线支付---09,10,11,12_在线支付_分析易宝支付网关的应答协议与处理代码,完成用于处理支付响应的Servlet的初步编写和调试,完成处理支付网关响应结果的Servlet,支付实现
- java实现网上在线支付--02_分析易宝支付的工作流程
- java实现网上在线支付--06,07,08_在线支付_编写将数据提交给易宝支付的JSP页面,集成和测试向易宝发送支付请求,实现浏览器自动向易宝发送支付请求
- java实现网上在线支付--05_编写用于准备请求数据的Servlet
- java实现网上在线支付--04_编写易宝支付的客户端加密工具类
- java在线支付---06,07,08_在线支付_编写将数据提交给易宝支付的JSP页面,集成和测试向易宝发送支付请求,实现浏览器自动向易宝发送支付请求
- java实现网上在线支付--01_在线支付功能的演示与概述
- java在线支付---02_分析易宝支付的工作流程
- HTTP POST请求报文格式分析与Java实现文件上传
- Java实现HTTP协议的请求
- HTTP POST请求报文格式分析与Java实现文件上传
- HTTP POST请求报文格式分析与Java实现文件上传
- 借助易宝实现Java版网上在线支付
- java实现的利用HTTP协议原理实现的GET/POST请求的web服务器
- HTTP POST请求报文格式分析与Java实现文件上传
- HTTP POST请求报文格式分析与Java实现文件上传
- HTTP POST请求报文格式分析与Java实现文件上传