易宝支付(Java实现)

网上支付一般分俩种方式,一种是直接与银行对接,一种是使用第三方支付平台与银行对接,与银行直接对接固然好,安全系数比较高,但是比较麻烦,尤其是当你资金不是很充沛的时候银行都不会怎么在意你,而且要是你使用其他工具与银行对接,当银行升级系统或者做了某些修改后你也得坐出相应的修改,十分麻烦,因此很多商户都选择第二种方式,其优点也有很多种,尤其胜在方便,而且通过第三方平台可以一次性和多个银行打交道,大大节省了时间,当然使用的时候也会收取一定的费用,大约为1%,收商户的钱,不收支付顾客的钱,下面来看代码

 

yeepay.properties:

#商户
	#商户编号
	p1_MerId = 10001126856
	
	#商户密匙
	keyValue=69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl
	
	#支付成功重定向地址
	p8_Url = http://localhost:80/MyYeepayDemo/PayEndServlet

工具类:

这个工具其实使用的是MD5加密,该类由易宝支付公司编写(HMACMD5 是从 MD5 哈希函数构造的一种键控哈希算法,被用作基于哈希的消息验证代码 (HMAC)。此 HMAC 进程将密钥与消息数据混合,使用哈希函数对混合结果进行哈希计算,将所得哈希值与该密钥混合,然后再次应用哈希函数。输出的哈希值长度为 128 位。 from 百度百科)

package util;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;

/**
 * 加密工具类
 * 
 * @author Lilanqi
 */
public class DigestUtil {

	private static String ENCODING_CHARSET = "UTF-8";

	/**
	 * @param aValue 加密的原文
	 * @param aKey 加密秘钥
	 * @return
	 */
	public static String hmacSign(String aValue, String aKey) {
		byte k_ipad[] = new byte[64];
		byte k_opad[] = new byte[64];
		byte keyb[];
		byte value[];
		try {
			keyb = aKey.getBytes(ENCODING_CHARSET);
			value = aValue.getBytes(ENCODING_CHARSET);
		} catch (UnsupportedEncodingException e) {
			keyb = aKey.getBytes();
			value = aValue.getBytes();
		}

		Arrays.fill(k_ipad, keyb.length, 64, (byte) 54);
		Arrays.fill(k_opad, keyb.length, 64, (byte) 92);
		for (int i = 0; i < keyb.length; i++) {
			k_ipad[i] = (byte) (keyb[i] ^ 0x36);
			k_opad[i] = (byte) (keyb[i] ^ 0x5c);
		}

		MessageDigest md = null;
		try {
			md = MessageDigest.getInstance("MD5");
		} catch (NoSuchAlgorithmException e) {
			return null;
		}
		md.update(k_ipad);
		md.update(value);
		byte dg[] = md.digest();
		md.reset();
		md.update(k_opad);
		md.update(dg, 0, 16);
		dg = md.digest();
		return toHex(dg);
	}

	private static String toHex(byte input[]) {
		if (input == null)
			return null;
		StringBuffer output = new String
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值