导航:首页 > 编程语言 > java财付通

java财付通

发布时间:2024-07-09 20:58:11

A. 怎么用java调用微信支付接口

java调用微信支付接口方法:x0d=newRequestHandler(super.getRequest(),super.getResponse());x0dx0ax0dx0a//获取token//两小时内有效,两小时后重新获取x0dx0ax0dx0aToken=requestHandler.GetToken();x0dx0ax0dx0a//更新token到应用中x0dx0ax0dx0arequestHandler.getTokenReal();x0dx0ax0dx0aSystem.out.println("微信支付获取token=======================:"+Token);x0dx0ax0dx0ax0dx0ax0dx0a//requestHandler初始化x0dx0ax0dx0arequestHandler.init();x0dx0ax0dx0arequestHandler.init(appid,appsecret,appkey,partnerkey,key);x0dx0ax0dx0ax0dx0ax0dx0a//--------------------------------本地系统生成订单-------------------------------------x0dx0ax0dx0a//设置package订单参数x0dx0ax0dx0aSortedMappackageParams=newTreeMap();x0dx0ax0dx0apackageParams.put("bank_type","WX");//支付类型x0dx0ax0dx0apackageParams.put("body","xxxx");//商品描述x0dx0ax0dx0apackageParams.put("fee_type","1");//银行币种x0dx0ax0dx0apackageParams.put("input_charset","UTF-8");//字符集x0dx0ax0dx0apackageParams.put("notify_url","http://xxxx.com/xxxx/wxcallback");//通知地址这里的通知地址使用外网地址测试,注意80端口是否打开。x0dx0ax0dx0apackageParams.put("out_trade_no",no);//商户订单号x0dx0ax0dx0apackageParams.put("partner",partenerid);//设置商户号x0dx0ax0dx0apackageParams.put("spbill_create_ip",super.getRequest().getRemoteHost());//订单生成的机器IP,指用户浏览器端IPx0dx0ax0dx0apackageParams.put("total_fee",String.valueOf(rstotal));//商品总金额,以分为单位x0dx0ax0dx0ax0dx0ax0dx0a//设置支付参数x0dx0ax0dx0aSortedMapsignParams=newTreeMap();x0dx0ax0dx0asignParams.put("appid",appid);x0dx0ax0dx0asignParams.put("noncestr",noncestr);x0dx0ax0dx0asignParams.put("traceid",PropertiesUtils.getOrderNO());x0dx0ax0dx0asignParams.put("timestamp",timestamp);x0dx0ax0dx0asignParams.put("package",packageValue);x0dx0ax0dx0asignParams.put("appkey",this.appkey);x0dx0ax0dx0ax0dx0ax0dx0a//生成支付签名,要采用URLENCODER的原始值进行SHA1算法!x0dx0ax0dx0aStringsign="";x0dx0ax0dx0atry{x0dx0ax0dx0asign=Sha1Util.createSHA1Sign(signParams);x0dx0ax0dx0a}catch(Exceptione){x0dx0ax0dx0ae.printStackTrace();x0dx0ax0dx0a}x0dx0ax0dx0ax0dx0ax0dx0a//增加非参与签名的额外参数x0dx0ax0dx0asignParams.put("sign_method","sha1");x0dx0ax0dx0asignParams.put("app_signature",sign);//api支付拼包结束------------------------------------x0dx0ax0dx0ax0dx0ax0dx0a//获取=requestHandler.sendPrepay(signParams);x0dx0ax0dx0aSystem.out.println("prepayid:"+prepayid);x0dx0ax0dx0a//--------------------------------生成完成---------------------------------------------x0dx0ax0dx0ax0dx0ax0dx0a//生成预付快订单完成,返回给android,ios掉起微信所需要的参数。x0dx0ax0dx0aSortedMappayParams=newTreeMap();x0dx0ax0dx0apayParams.put("appid",appid);x0dx0ax0dx0apayParams.put("noncestr",noncestr);x0dx0ax0dx0apayParams.put("package","Sign=WXPay");x0dx0ax0dx0apayParams.put("partnerid",partenerid);x0dx0ax0dx0apayParams.put("prepayid",prepayid);x0dx0ax0dx0apayParams.put("appkey",this.appkey);x0dx0ax0dx0a//这里除1000是因为参数长度限制。x0dx0ax0dx0ainttime=(int)(System.currentTimeMillis()/1000);x0dx0ax0dx0apayParams.put("timestamp",String.valueOf(time));.out.println("timestamp:"+time);x0dx0ax0dx0ax0dx0ax0dx0a//签名x0dx0ax0dx0aStringpaysign="";x0dx0ax0dx0atry{x0dx0ax0dx0apaysign=Sha1Util.createSHA1Sign(payParams);x0dx0ax0dx0a}catch(Exceptione){x0dx0ax0dx0ae.printStackTrace();x0dx0ax0dx0a}x0dx0ax0dx0apayParams.put("sign",paysign);x0dx0ax0dx0ax0dx0ax0dx0a//拼json数据返回给客户端=newBasicDBObject();x0dx0ax0dx0abackObject.put("appid",appid);x0dx0ax0dx0abackObject.put("noncestr",payParams.get("noncestr"));x0dx0ax0dx0abackObject.put("package","Sign=WXPay");x0dx0ax0dx0abackObject.put("partnerid",payParams.get("partnerid"));x0dx0ax0dx0abackObject.put("prepayid",payParams.get("prepayid"));x0dx0ax0dx0abackObject.put("appkey",this.appkey);x0dx0ax0dx0abackObject.put("timestamp",payParams.get("timestamp"));x0dx0ax0dx0abackObject.put("sign",payParams.get("sign"));=dataObject.toString();x0dx0ax0dx0aSystem.out.println("backstr:"+backstr);;x0dx0ax0dx0ax0dx0ax0dx0a====================到此为止,预付款订单已生成,并且已返回客户端====================x0dx0ax0dx0ax0dx0ax0dx0a//坐等微信服务器通知,通知的地址就是生成预付款订单的notify_=newResponseHandler(request,response);x0dx0ax0dx0aresHandler.setKey(partnerkey);x0dx0ax0dx0a//创建请求对象x0dx0ax0dx0a//RequestHandlerqueryReq=newRequestHandler(request,response);x0dx0ax0dx0a//queryReq.init();x0dx0ax0dx0aif(resHandler.isTenpaySign()==true){x0dx0ax0dx0a//商户订单号x0dx0ax0dx0aStringout_trade_no=resHandler.getParameter("out_trade_no");x0dx0ax0dx0aSystem.out.println("out_trade_no:"+out_trade_no);x0dx0ax0dx0a//财付通订单号x0dx0ax0dx0aStringtransaction_id=resHandler.getParameter("transaction_id");x0dx0ax0dx0aSystem.out.println("transaction_id:"+transaction_id);x0dx0ax0dx0a//金额,以分为单位x0dx0ax0dx0aStringtotal_fee=resHandler.getParameter("total_fee");x0dx0ax0dx0a//如果有使用折扣券,discount有值,total_fee+discount=原请求的total_feex0dx0ax0dx0aStringdiscount=resHandler.getParameter("discount");x0dx0ax0dx0a//支付结果x0dx0ax0dx0aStringtrade_state=resHandler.getParameter("trade_state");x0dx0ax0dx0ax0dx0ax0dx0a//判断签名及结果x0dx0ax0dx0aif("0".equals(trade_state)){x0dx0ax0dx0a//------------------------------x0dx0ax0dx0a//即时到账处理业务开始x0dx0ax0dx0a//------------------------------.out.println("----------------业务逻辑执行-----------------");x0dx0ax0dx0ax0dx0ax0dx0a//——请根据您的业务逻辑来编写程序(以上代码仅作参考)——x0dx0ax0dx0aSystem.out.println("----------------业务逻辑执行完毕-----------------");x0dx0ax0dx0aSystem.out.println("success");//请不要修改或删除.out.println("即时到账支付成功");x0dx0ax0dx0a//给财付通系统发送成功信息,财付通系统收到此结果后不再进行后续通知x0dx0ax0dx0aresHandler.sendToCFT("success");x0dx0ax0dx0ax0dx0ax0dx0a//给微信服务器返回success否则30分钟通知8次x0dx0ax0dx0areturn"success";x0dx0ax0dx0a}else{x0dx0ax0dx0aSystem.out.println("通知签名验证失败");x0dx0ax0dx0aresHandler.sendToCFT("fail");x0dx0ax0dx0aresponse.setCharacterEncoding("utf-8");x0dx0ax0dx0a}x0dx0ax0dx0a}else{x0dx0ax0dx0aSystem.out.println("fail-Md5failed");

B. 手机财付通在支付之前为什么总是提示:《获取证书签名出错》

(一)证书过期
解决办法:
1:把手机时间调到证书的期限内(把手机时间往前调几个月或更长时间)再安装,
比如现在是09年08月20日,先把手机日期调整到09年1月1日,如果还提示过期就再往前调直到能正常安装。安装好后再调整回来。如果电脑上安装了诺基亚PC套件和塞班手机证书签名工具,选中软件右键弹出会有一个查看有效期功能,把时间调整到该日期内即可安装。
2:为软件重新签名再安装。

(二)证书错误
通常这是因为安装的软件需要自签名,申请了证书对程序进行自签名即可安装了。
如果是JAR的程序,一般是因为证书有冲突,
(很多java游戏都会出这个错误提示,解决办法看下面2)但不建议安装JAR程序。
解决办法:
1:为软件签名(查看签名方法);
2:将程序(软件/游戏)直接安装到手机上或更换存储卡。

(三)更新错误
一般出现这提示是因为手机内有旧版本的相同软件没有删除,进行了重复安装。
或者因为新、旧版软件安装程序标题不同引起冲突。
解决办法:
1:卸载旧版软件之后,再安装新版本软件;
2:把新版本软件解包,在PKG文档中把安装程序标题改为与旧版一致。

(四)证书尚未生效
手机的时间超出软件证书的期限,这种情况下一般都是手机日期过时,
或者因安装软件证书提示过期时时间调太前面了。
解决办法:
1:检查手机的日期是否设置正确;
2:把手机时间调到证书的期限内,然后再安装,在安装过后调回正确时间即可。

(五)未授予所需的程序接入权限
因为S60第三版系统的安全问题,一些程序的权限可能被禁止使用。没有该权限的程序都无法安装,或该程序已经被签名,还有种可能就是证书出错。
解决办法:
1:对该软件重新签名后再安装;
2:XX手机,去掉手机证书权限的限制

(六)证书受限制
1:由软件签名出错或者软件已被多次签名引起.
2:现有的手机证书权限太低。
解决办法:
1:对该软件重新签名后再安装,
2:申请更高权限的手机证书。

(七)无法安装不被信任的提供商提供的受保护应用程序
通常是以下几种情况引起的问题:
1.手机设置问题
2.软件没有签名或者签名不正确
3.证书冲突.
解决办法:
1:进入手机的“程序管理”-- “选项”--“设置”:“安装软件”设置成--全部,
“在线证书检查”设置成--关;
2:将未签过名的软件重新签名后再安装;
3 :格机后再安装(注意格机前请做好备份)

C. Java类的基本组成和使用

Java类的基本组成:java由一系列的接口和类组成,所有类的父类是:object。对象的生成:使用new关键字产生对象,该对象类中构造方法就是用来产生对象的。对象由一系列的属性和行为构成。使用和删除:对象构成之后,就可以使用对象点方法、属性进行操作,问删除,如果对象失去了引用的指向,会自动被GC(垃圾回收机制)回收。接口与包:接口(行为的抽象),实现接口,必须实现接口的方法,哪怕是空实现,目前我见过唯一一个没有实现的类就是:HttpSrvlet,其中的service实现的是抽象方法,接口目的有3点:1、因为在java不像C++,java是单继承,所以为了实现多继承,提出了接口的概念。2、为了规范,比如财付通、支付宝等第3方支付工具,外面的人怎么用它呢?他们仅仅是提供了接口给外面的,不管你怎么操作,你必须按照我提供给你的接口去实现。3、多态(Oriented Object的思想),程序的健壮性(开闭原则),方便维护和扩展,动态绑定可以实现接口变量指向实现类。包的概念就是为了方便管理。oracle中的包的概念也是如此常用的类和接口就不说了,自己去查查API,太多了

D. java web 开发 购物网站 怎么做订单结算部分

我写过两次订单结算,不过都是asp.net下的,但是应该差不多吧.订单结算是最后的步骤,提交订单之后需要做结算,实际上就是收钱嘛.
传统来讲此时需要一个支付接口,比如说支付宝财付通快钱 网银在线之类的,他们提供接口,我们按照他们说明文档来实现就好.重要的是交易记录哦!!提交订单后需要交易日志(不能从字面意义上来理解"交易",实际上跟别人讨价还价也是交易的一种不是嘛.)转到接口前需要日志,接口返回信息需要日志(表结构差不多啦)这些日志,方便以后退款或者查看状态使用;
不传统来讲除支付接口外,要考虑购物网站个人钱包支付或者线下汇款之类的 建议使用策略模式
额 不知道说啥了.缕一缕在纸上构思下就差不多 但一定要考虑好安全性

阅读全文

与java财付通相关的资料

热点内容
php生成js文件 浏览:285
云端服务器什么作用 浏览:1
关闭系统运行命令 浏览:956
程序员哪找兼职 浏览:785
什么app可以让孩子学习数学 浏览:202
怎么弄坏空调的压缩机 浏览:983
phpexcel浮点数 浏览:484
怎么用命令方块让村民帮自己战斗 浏览:571
java随机数代码 浏览:828
主题叫火什么的app 浏览:880
智能水表加密阀门 浏览:653
月饼玩具解压 浏览:510
迅捷pdf编辑器官网 浏览:962
打造云服务器的应用 浏览:613
程序员去医院做项目 浏览:332
viper4android安卓60 浏览:493
java软件源码 浏览:161
空气压缩机的类型 浏览:355
centos图形命令行界面切换 浏览:240
新京报新闻APP什么时候有的 浏览:818