首先注册码支付账号

https://codepay.fateqq.com/i/25823

增值服务-选择开通58元套餐或者豪华版套餐(如果您的网站每个月的流水大的话建议开通豪华版)

JSP创建订单代码:

<%@ page language =“java”contentType =“text / html; charset = UTF-8”pageEncoding =“UTF-8”%>

<%
	/ **
	*接收参数创建订单
	* /
	String token =“更改成您的令牌令牌”; //记得更改http://codepay.fateqq.com后台可设置
	String codepay_id =“更改成您的码支付ID”; //记得更改http://codepay.fateqq.com后台可获得

	String price = request.getParameter(“price”); //表单提交的价格
	String type = request.getParameter(“type”); //支付类型1:支付宝2:QQ钱包3:微信
	String pay_id = request.getParameter(“pay_id”); //支付人的唯一标识
	String param = request.getParameter(“param”); //自定义一些参数支付后返回

	字符串notify_url =“http://你的域名/codepay.jsp";//通知地址
	String return_url =“”; //支付后同步跳转地址

	如果(价格== NULL){ 
		价格= “1”;
	}
	//参数有中文则需要URL编码
	String url =“http://codepay.fateqq.com:52888/creat_order?id=”+ codepay_id +“&pay_id =”+ pay_id +“&price =”+ price +“&type =”+ type +“&token =”+ token +“&param = “+ PARAM +” &notify_url = “+ notify_url +” &return_url =“+ return_url;

	如果(令牌== “更改成您的令牌令牌”){ 
		的out.print(令牌+ “ID”);	
	}其他{
		response.sendRedirect是(URL);
	}
%>

JSP验证通知并处理业务代码:

<%@ page language =“java”contentType =“text / html; charset = UTF-8”pageEncoding =“UTF-8”%>
<%@ page import =“java.util。*”%>
<%@ page import =“java.security.MessageDigest”%>
<%@ page import =“java.math。*”%>

<%
	/ **
	*验证通知处理自己的业务
	* /
	String key =“通信密钥”; //记得更改http://codepay.fateqq.com后台可设置
	Map <String,String> params = new HashMap <String,String>(); //申明HashMap的变量储存接收到的参数名用于排序
	Map requestParams = request.getParameterMap(); //获取请求的全部参数
	String valueStr =“”; //申明字符变量保存接收到的变量
	for(Iterator iter = requestParams.keySet()。iterator(); iter.hasNext();){
		String name =(String)iter.next();
		String [] values =(String [])requestParams.get(name);
		valueStr = values [0];
		//乱码解决,这段代码在出现乱码时使用。如果签不相等也可以使用这段代码转化
		// valueStr = new String(valueStr.getBytes(“ISO-8859-1”),“gbk”);
		params.put(name,valueStr); //增加到params保存
	}
	List <String> keys = new ArrayList <String>(params.keySet()); //转为数组
  	Collections.sort(键); //重新排序
	String prestr =“”;
	String sign = params.get(“sign”); //获取接收到的sign参数
	
        for(int i = 0; i <keys.size(); i ++){//遍历拼接url拼接成a = 1&b = 2进行MD5签名
            String key_name = keys.get(i);
            字符串值= params.get(key_name);
	    	if(value == null || value.equals(“”)|| key_name.equals(“sign”)){//跳过这些不签名
	    		继续;
	    	}
	    	if(prestr.equals(“”)){
	    		prestr = key_name +“=”+ value;
	    	}其他{
				prestr = prestr +“&”+ key_name +“=”+ value;
	    	}
        }
	MessageDigest md = MessageDigest.getInstance(“MD5”);
	md.update((prestr +键).getBytes());
	String mySign = new BigInteger(1,md.digest())。toString(16).toLowerCase();
	如果(mySign.length()= 32!)mySign = “0” + mySign;
	如果(mySign.equals(符号)){ 
		//编码要匹配编码不一致中文会导致加密结果不一致
		//参数合法处理业务
		//request.getParameter("pay_no“)流水号
		//request.getParameter("pay_id“)用户唯一标识
		//request.getParameter("money“)付款金额
		//request.getParameter("price“)提交的金额
		的out.print( “OK”);
	}其他{
		//参数不合法
		的out.print( “失败”);
	}
%>
原文链接:https://www.jocat.cn/archives/14597,转载请注明出处。
0
显示验证码
没有账号?注册  忘记密码?