java支付宝即时到帐提交订单功能
本文实例为大家分享了java支付宝即时到帐提交订单的具体代码,供大家参考,具体内容如下
packagecom.tian.batis; importjava.io.UnsupportedEncodingException; importjava.net.URLEncoder; importjava.util.ArrayList; importjava.util.Collections; importjava.util.HashMap; importjava.util.List; importjava.util.Map; importorg.apache.commons.codec.digest.DigestUtils; importjavax.servlet.http.HttpServletResponse; publicclassalipay{ /** *alipay支付接口 * *@param_input_charset *编码 *@paramsubject *商品名(必填) *@paramnotify_url *异步执行地址 *@parambody *商品描述 *@parampayment_type *付款类型 *@paramout_trade_no *订单号(必填) *@parampartner *商家id *@paramservice *服务 *@paramtotal_fee *金额(必填) *@paramreturn_url *返回展示地址 *@paramsign_type *加密方式(默认md5) *@paramseller_id *同商家id *@paramresponse *@paramsessionId *sessionId *@return成功返回url;-1失败(参数);-2处理异常 */ publicStringAlipayPayment(String_input_charset,Stringsubject,Stringnotify_url,Stringbody, Stringpayment_type,Stringout_trade_no,Stringpartner,Stringservice,Integertotal_fee, Stringreturn_url,Stringsign_type,Stringseller_id,HttpServletResponseresponse,StringsessionId){ try{ StringstrSandbox="https://mapi.alipay.com/gateway.do";//地址 ConfigManagerconfigManager=ConfigManager.getInstance("alipayconfig.properties"); Mapmap=newHashMap (); if(null!=subject&&subject.trim().length()>0){ map.put("subject",subject); }else{ return"-1"; } if(null!=out_trade_no&&out_trade_no.trim().length()>0){ map.put("out_trade_no",out_trade_no); }else{ return"-1"; } if(null!=total_fee&&total_fee>0){ map.put("total_fee",total_fee+""); //map.put("total_fee","0.01"); }else{ return"-1"; } if(null!=_input_charset&&_input_charset.trim().length()>0){ map.put("_input_charset",_input_charset); }else{ map.put("_input_charset",configManager.getConfigItem("alipay._input_charset").toString()); } if(null!=notify_url&¬ify_url.trim().length()>0){ map.put("notify_url",notify_url); }else{ map.put("notify_url",configManager.getConfigItem("alipay.notify_url1").toString()); } if(null!=return_url&&return_url.trim().length()>0){ map.put("return_url",return_url); }else{ map.put("return_url",configManager.getConfigItem("alipay.return_url").toString()); } if(null!=payment_type&&payment_type.trim().length()>0){ map.put("payment_type",payment_type); }else{ map.put("payment_type",configManager.getConfigItem("alipay.payment_type").toString()); } if(null!=partner&&partner.trim().length()>0){ map.put("partner",partner); }else{ map.put("partner",configManager.getConfigItem("alipay.partner").toString()); } if(null!=service&&service.trim().length()>0){ map.put("service",service); }else{ map.put("service",configManager.getConfigItem("alipay.service").toString()); } if(null!=sign_type&&sign_type.trim().length()>0){ map.put("sign_type",sign_type); }else{ map.put("sign_type",configManager.getConfigItem("alipay.sign_type").toString()); } if(null!=seller_id&&seller_id.trim().length()>0){ map.put("seller_id",seller_id); }else{ map.put("seller_id",configManager.getConfigItem("alipay.seller_id").toString()); } if(null!=body&&body.trim().length()>0){ map.put("body",body); } if(null!=sessionId&&sessionId.trim().length()>0){ map.put("extra_common_param",sessionId); } Map sPara=paraFilter(map); //生成签名结果 Stringsign=buildRequestMysign(sPara,configManager.getConfigItem("alipay.key").toString(), configManager.getConfigItem("alipay._input_charset").toString()); map.put("sign",sign); Stringstr=""; for(Map.Entry entry:map.entrySet()){ Stringkey=entry.getKey(); Stringvalue=entry.getValue(); if(key.equals("subject")||key.equals("body")){ value=URLEncoder.encode(value,"UTF-8"); } if(null!=str&&str.trim().length()>0){ str+="&"+key+"="+value; }else{ str+=key+"="+value; } } Stringurl=strSandbox; if(null!=str&&str.trim().length()>0){ url+="?"+str; } returnurl; //注:如果失败考虑 //1.response重定向编码 //2.sign_type放置参数末尾 //3.url追加_input_charset=utf-8 }catch(Exceptione){ e.printStackTrace(); return"-2"; } } /////////////////////////////////////////////////////// /** *除去数组中的空值和签名参数 * *@paramsArray *签名参数组 *@return去掉空值与签名参数后的新签名参数组 */ publicstaticMap paraFilter(Map sArray){ Map result=newHashMap (); if(sArray==null||sArray.size()<=0){ returnresult; } for(Stringkey:sArray.keySet()){ Stringvalue=sArray.get(key); if(value==null||value.equals("")||key.equalsIgnoreCase("sign") ||key.equalsIgnoreCase("sign_type")){ continue; } result.put(key,value); } returnresult; } /** *生成签名结果 * *@paramsPara *要签名的数组 *@return签名结果字符串 */ publicstaticStringbuildRequestMysign(Map sPara,Stringkey,Stringinput_charset){ Stringprestr=createLinkString(sPara);//把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串 Stringmysign=""; mysign=sign(prestr,key,input_charset); returnmysign; } /** *把数组所有元素排序,并按照“参数=参数值”的模式用“&”字符拼接成字符串 * *@paramparams *需要排序并参与字符拼接的参数组 *@return拼接后字符串 */ publicstaticStringcreateLinkString(Map params){ List keys=newArrayList (params.keySet()); Collections.sort(keys); Stringprestr=""; for(inti=0;i 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。