码支付个人免签对接之JAVA版订单创建及通知接口/码支付注册/码支付官网

批发认证公众号 | 批发已备案域名

1022563618 3179787531

寻棋牌大佬合作丶主要负责测试搭建APP棋牌|本站源码可与你共享

如果这套源码不能正常安装和使用,请在下方留言哦。如有侵犯您权益的内容请联系小站删除哦,小站定会积极配合的。

首先注册码支付账号

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( “失败”);
	}
%>

本文由 奇偶猫 作者:By_奇偶猫 发表,其版权均为 奇偶猫 所有,文章内容系作者个人观点,不代表 奇偶猫 对观点赞同或支持。如需转载,请注明文章来源。

3
奇偶猫

发表评论