【支付】第三方易宝支付

  最近做了公众号的微信支付,想起来之前的第三方易宝支付,重新实现理解了一下。无论是微信,还是易宝。整个支付过程都是设置一些参数,然后提交给支付网关,最后返回数据,针对业务进行操作。


商户公司直接与银行对接和通过中间公司与银行对接

直接银行对接

  1.优点:安全,适用于资金流量比较大的企业

  2.缺点:开发工作量大,维护工作量大,缴纳接口使用费

中间公司对接

  1.优点:开发工作量小,维护工作量小,适用于资金流量小的企业

  2.缺点:不安全


规范:

  MD5-hmac:秘密的秘钥验证算法。hmac提供的数据完整性和源身份验证完全取决于秘钥分配的范围。如果只要发送者和接收者知道hmac秘钥,那么这就对两者间发送的数据提供了源身份验证和完整性保证


通过http向易宝支付网关发送请求,请求可以是get和post,页面采用GBK

  易宝支付网关对对企业发来的数据,使用用户的密钥生成MD5-hmac码,然后跟企业发来的MD5-hmac码对比,相同则把请求转发给银行网关,用户支付完成后,银行网关引导用户重定向到易宝支付网关,易宝支付网关再引导用户重定向到企业制定的URL


使用intellij idea对代码实现

  1.首先创建一个java Web工程  http://www.cnblogs.com/yangyquin/p/5285272.html

  2.完整的站点地图

 3.执行流程

    1.web.xml,引导进入index.jsp
    2.表单提交,action=${pageContext.request.contextPath}/servlet/yeepay/paymentRequest
    3.web.xml中配置的Servlet,进入com.dynamic.servlet.PaymentRequest
    4.配置参数,转发到connection.jsp中
    5.向易宝网关提交请求,请求中包括企业回调业务地址,请求完成后回调               http://localhost:5050/servlet/yeepay/response
    6.web.xml中配置的Servlet,进入com.dynamic.servlet.PaymentResutlResponse
    7.校验MD5-hmac,成功,执行企业业务代码,数据保存到数据库中

  4.代码实现

  web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <servlet>
        <description>发起支付请求</description>
        <display-name>发起支付请求</display-name>
        <servlet-name>PaymentRequest</servlet-name>
        <servlet-class>com.dynamic.servlet.PaymentRequest</servlet-class>
    </servlet>

    <servlet>
        <description>响应支付结果请求</description>
        <display-name>响应支付结果请求</display-name>
        <servlet-name>PaymentResutlResponse</servlet-name>
        <servlet-class>com.dynamic.servlet.PaymentResutlResponse</servlet-class>
    </servlet>


    <servlet-mapping>
        <servlet-name>PaymentRequest</servlet-name>
        <url-pattern>/servlet/yeepay/paymentRequest</url-pattern>
    </servlet-mapping>
    
    <servlet-mapping>
        <servlet-name>PaymentResutlResponse</servlet-name>
        <url-pattern>/servlet/yeepay/response</url-pattern>
    </servlet-mapping>
   <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

</web-app>

  merchantInfo.properties,属性文件,指定参数

p1_MerId=10001126856 #商家ID
keyValue=69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl #商户密钥
merchantCallbackURL=http://localhost:5050/servlet/yeepay/response #商户接收支付成功数据的地址

  configInfo,读取属性文件

package com.dynamic.util;

import java.util.Properties;

/**
 * Created by fxq on 2017/5/12.
 */
public class ConfigInfo {

    private static Properties cache = new Properties();
    static {
        try {
            cache.load(ConfigInfo.class.getClassL
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值