支付宝app支付java服务端
2017-10-26 15:29
543 查看
今天更新一篇支付宝java服务端的博客吧,原来想写一个的,不过因为某些原因前段时间没写。这几天公司做了支付功能,发一篇吧!
新版支付宝app支付是真的舒服,爽的一匹,什么都封装好了,基本不用我们干什么,直接拿来sdk用
先去支付宝开放平台下载了sdk附上网址:https://docs.open.alipay.com/54/106370/
解压出来是这样的
我们只需要用我画红线的就好了,拿来导入到项目里面。
先写一个配置类
把私钥公钥什么的放里面,
应用公钥和支付宝公钥是不一样的,不要搞混了,用处也不一样,下面会说
生成APP支付订单信息
这里客户端去拿着你的数据去调用支付宝付款的时候有可能会出现ali40247这个错误代码,这里说下解决办法,最有可能的就是编码问题,还有没有上线的话也是会出现这个情况的,可以去支付宝查看是不是一上线了步骤是:管理中心》我的应用》状态》(注意:)已上线才可以使用
编码问题的话就是,你这边直接把订单信息给app了,然后app自己又做了处理,是不需要做处理的,直接拿了用就行了。
这两个常见的把,解决不了的话可以去这里:https://tech.open.alipay.com/support/knowledge/index.htm?knowledgeId=201602060009&categoryId=24120#/?_k=xqdo9j
服务端回调
好了支付宝支付就ok了,有什么不懂欢迎留言评论交流!谢谢
9a25
新版支付宝app支付是真的舒服,爽的一匹,什么都封装好了,基本不用我们干什么,直接拿来sdk用
先去支付宝开放平台下载了sdk附上网址:https://docs.open.alipay.com/54/106370/
解压出来是这样的
我们只需要用我画红线的就好了,拿来导入到项目里面。
先写一个配置类
把私钥公钥什么的放里面,
//私钥 public final static String APP_PRIVATE_KEY = ""; //支付宝分配给开发者的应用ID public final static String APP_ID = ""; //请求使用的编码格式,如utf-8,gbk,gb2312等 public final static String charset = "UTF-8"; //应用公钥 public final static String ALIPAY_PUBLIC_KEY = ""; //支付宝公钥 public final static String ALIPAYPUBLICKEY = "";
应用公钥和支付宝公钥是不一样的,不要搞混了,用处也不一样,下面会说
生成APP支付订单信息
//实例化客户端 AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID,//appid APP_PRIVATE_KEY,//私钥 "json", //格式,仅支持json charset,//请求编码格式 ALIPAY_PUBLIC_KEY,//应用公钥 "RSA2");//签名算法类型,支持RSA2和RSA,推荐使用的是RSA2 Map map = Maps.newHashMap(); //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。 AlipayTradeAppPayModel model = new AlipayTradeAppPayModel(); model.setBody("内容"); model.setSubject("标题"); model.setOutTradeNo("唯一订单号(自己生成的)"); model.setTimeoutExpress("30m");//一般用不到这个 model.setTotalAmount("0.01");//这个嘛就是钱喽 model.setProductCode("QUICK_MSECURITY_PAY");//商家和支付宝签约的产品码,为固定值 request.setBizModel(model); request.setNotifyUrl("异步地址");//外网异步回调地址,是需要外网能够访问到的 try { //这里和普通的接口调用不同,使用的是sdkExecute AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request); map.put("data",response.getBody());//这里直接把订单信息给app端就好了,让他直接拿着去调起支付宝 map.put("status",0); return map; } catch (AlipayApiException e) { e.printStackTrace(); map.put("status",1); return map; }
这里客户端去拿着你的数据去调用支付宝付款的时候有可能会出现ali40247这个错误代码,这里说下解决办法,最有可能的就是编码问题,还有没有上线的话也是会出现这个情况的,可以去支付宝查看是不是一上线了步骤是:管理中心》我的应用》状态》(注意:)已上线才可以使用
编码问题的话就是,你这边直接把订单信息给app了,然后app自己又做了处理,是不需要做处理的,直接拿了用就行了。
这两个常见的把,解决不了的话可以去这里:https://tech.open.alipay.com/support/knowledge/index.htm?knowledgeId=201602060009&categoryId=24120#/?_k=xqdo9j
服务端回调
//获取支付宝POST过来反馈信息 System.out.println("支付宝回调"); Map<String,String> params = new HashMap<String,String>(); Map requestParams = request.getParameterMap(); for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) { String name = (String) iter.next(); String[] values = (String[]) requestParams.get(name); String valueStr = ""; for (int i = 0; i < values.length; i++) { valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ","; } //乱码解决,这段代码在出现乱码时使用。 //valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8"); params.put(name, valueStr); } //切记alipaypublickey是支付宝的公钥,请去open.alipay.com对应应用下查看。 //boolean AlipaySignature.rsaCheckV1(Map<String, String> params, String publicKey, String charset, String sign_type) boolean flag = AlipaySignature.rsaCheckV1(params, ALIPAYPUBLICKEY, //这里是支付宝公钥不是应用公钥 charset,"RSA2");//验签不通过支付宝会一直回调你的异步回调 if (flag){ if("TRADE_SUCCESS".equals(params.get("trade_status"))){ //这里写业务逻辑,操作数据库等操作 return "success";//成功返给支付宝成功就行了, } } return "error";
好了支付宝支付就ok了,有什么不懂欢迎留言评论交流!谢谢
9a25
相关文章推荐
- 支付宝APP支付Java服务端
- java服务端–支付宝APP支付接口
- app支付宝支付java服务端代码
- 支付宝官网下载App支付服务端DEMO&S(Java、.net、php 4000 )
- 支付宝APP支付服务端详解(JAVA)
- java服务端–支付宝APP支付接口
- Java 支付宝之APP支付服务端 (二)
- 支付宝APP支付集成,服务端(JAVA)
- 支付宝支付(网站支付,APP支付,扫码支付) Java服务端代码
- 支付宝APP支付集成,服务端(JAVA)
- java--springboot支付宝新版app支付服务端代码
- java支付宝和微信app支付(服务端处理)
- Java服务端接入支付宝APP支付及微信APP支付
- PHP服务端支付宝app支付遇到的坑
- 支付宝APP支付(IOS手机端+java后台)版
- php 服务端集成支付宝APP支付
- java服务端–微信APP支付接口
- 微信支付 java 服务端demo (v3版本app支付 springMVC框架中)
- APP 支付宝支付,服务端处理
- 支付宝APP支付之Java后台生成签名具体步骤