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

创梦综合技术qq交流群:CreDream:251572072

--------------------------------------
1.buildHmac()方法用于生产md5-hmac
  public static buildHmac(String po_cmd,String p1_Merld, 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_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);//商品描述
  sValue.append(p8_Url);//商户接收支付成功数据的地址,也就是
  //支付成功后返回给商户数据的地址,因为这里使用引导浏览器的方式把
  //数据给了商户的某个地址来接收,这种方式不是很好.一旦用户的浏览器出问题了
  //或者人为的暂停了浏览器.那么商户就没法收到易宝返回的数据.
  sValue.append(p9_SAF);//送货地址,用不到不可以传null,要传""空字符串.
  sValue.append(pa_MP);//商户扩展信息,这个用来商户发给易宝什么数据
  // 当支付完成后,就原样返回这些信息.如果有些数据需要发给易宝,这些
  // 数据在支付完后,会按照原样返回这些信息,这里主要做为扩展的信息.
  sValue.append(pd_Frpid);//银行编码
  sValue.append(pr_NeedResponse);//应答机制
  // 应答机制
  // 通过这句就可以把,要发送的信息,通过给定的密钥加密后发给易宝支付了.
  String sNewString = DigesUtil.hmacSign(sValue.toString(),keyVlue);
  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页面,页面中只有success这个代码,
     那么就代表把支付信息成功的通知给了商户,否则会不停的给商户发送支付状态
     信息,直到易宝接收到商户返回的success这个信息为止.
   g.一般设置为0,就可以了,但是有一种情况就是:当你的程序出现了例外异常,
     你在程序中进行了异常的捕获,那么这时候返回的状态码也是200,但是商户
     的程序并没有接收到支付结果信息.这个时候就应该,通过页面返回success字符串来
     表示支付成功与否.
---------------------------------------------------
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_分析易宝支付网关的请求协议相关推荐

  1. java在线支付---09,10,11,12_在线支付_分析易宝支付网关的应答协议与处理代码,完成用于处理支付响应的Servlet的初步编写和调试,完成处理支付网关响应结果的Servlet,支付实现

    09_在线支付_分析易宝支付网关的应答协议与处理代码 创梦综合技术qq交流群:CreDream:251572072 对支付结果返回的数据加密生成md5-hmac public static boole ...

  2. java在线支付---02_分析易宝支付的工作流程

    2013/5/30 02_分析易宝支付的工作流程 Java技术qq交流群:JavaDream:251572072 ------------------------------------------- ...

  3. java在线支付---04_编写易宝支付的客户端加密工具类

    2013/5/30 04_编写易宝支付的客户端加密工具类 创梦综合技术qq交流群:CreDream:251572072 ---------------------------------------- ...

  4. 在线支付(易宝支付)

    第三方支付方式:易宝支付. 支付过程图解: 相关资料: 易宝支付产品通用接口帮助文档点击打开链接 使用步骤:     ①src下面放入支付测试用的merchantInfo.properties(包含商 ...

  5. 易宝支付[钱麦](附代码)

    想到支付首先要知道,就是调用以及回调接口. 1:准备工作导入易宝支付SDK.jar到自己公司私服(公司使用的nexus搭建私服操作如下) 查看/存储库:库(Repositories)----在对应的库 ...

  6. 传智播客--网上支付之易宝支付接入规范

    今天我们学习网上支付的实现.这个功能在网上商城等交易平台上是基本的功能.实现起来不难,却很实用.我们很有必要掌握好今天学习的知识.运用到我们今后 的工作中去. 1. 网上支付两种接入方案 --直接与银 ...

  7. java在线支付---06,07,08_在线支付_编写将数据提交给易宝支付的JSP页面,集成和测试向易宝发送支付请求,实现浏览器自动向易宝发送支付请求

    06_在线支付_编写将数据提交给易宝支付的JSP页面 -------------------------------------------------------------- 1./payment ...

  8. 在线支付之易宝支付的使用方法

    项目中实现在线支付的功能有两种方式: 第一种方式:使用银行提供的接口直接和银行对接.这种方式不用交第三方费用,但是如果要接入多个银行,则需要在本网站中一一使用不同银行提供的接口,这个过程比较麻烦,其次 ...

  9. java实现易宝支付

    易宝支付: 1.环境搭建: Java使用Servlet或者springMVC,使用maven进行环境搭建. 2.添加jar包: <dependencies> <dependency& ...

最新文章

  1. 全国大学生智能汽车竞赛浙江赛区选拔赛疫情防控工作预案
  2. 《linux内核完全剖析:基于0.12内核》读书笔记一
  3. python numpy.ones(shape, dtype=None, order=’C’) empty(shape[, dtype, order]) empty_like(a) 空数组 全1数组
  4. gerrit的使用和配置
  5. mysql between and 包含边界吗_10分钟让你明白MySQL是如何利用索引的
  6. mysql 随机查询数据
  7. Android应用程序窗口(Activity)的窗口对象(Window)的创建过程分析
  8. Windows 10《描图》应用现已开源
  9. CF1404C:Fixed Point Removal(离线)(树状数组二分)
  10. ansys icem cfd网格划分技术实例详解_新软速递极简的CFD软件in:Flux
  11. html5监听动画结束,css3动画是否结束监听事件
  12. httpclient请求服务的各种方法实例
  13. SpringMVC相关
  14. 分享几个下载豆瓣资源的chrome插件
  15. adb命令刷机vivox20_求救VIVO X20的 ROOT可行的方法。
  16. Spring 框架的学习心得
  17. 手脱aspack变形壳
  18. 办公软件测试题目,Office高级办公软件测试(附答案)
  19. 模具毕业设计题目推荐 / 毕业设计(论文)说明书 CAD图纸 三维模型 开题报告 任务书 实习报告 答辩 ……
  20. [pyecharts1.7] 坐标轴设置:X轴、Y轴通用

热门文章

  1. 【Machine Learning 四】设置机器学习可用的Matlab编程分配环境
  2. Linux安全加固--系统相关
  3. 初学者关于内存的思考(不断加深不断更新中)
  4. mysql_connect() 不支持 请检查 mysql 模块是否正确加载 解决方法
  5. Android之——自己定义TextView
  6. 转:验证curl_init() 返回 false时..
  7. mysql dba系统学习(8)查询日志文件功能
  8. silverlight 二级导航
  9. AJAX验证jsp页面验证码
  10. 在maven 2工程中加入iTextAsian支持(maven添加自定义jar包到本地仓库)