新版重构的SDK已经重构好,只剩下支付宝了,详情请看wiki
新版重构的SDK已经重构好,只剩下支付宝了,详情请看wiki
新版重构的SDK已经重构好,只剩下支付宝了,详情请看wiki
新版重构的SDK已经重构好,只剩下支付宝了,详情请看wiki
新版重构的SDK已经重构好,只剩下支付宝了,详情请看wiki
废话不多说,先上支付的案例,觉得可以用的就接下去看,没用也不会浪费你的时间。 总结起来三行代码就是三个步骤: 1.创建预支付返回信息对象,用于接收预支付返回信息 2.创建预支付请求对象,用于发送请求信息 3.调用支付助手工具类里的preOrder方法,预支付
微信版APP支付示例
//创建微信统一下单返回对象(我称这个过程为预支付) WechatPreOrderInfo wechatPreOrderInfo = new WechatPreOrderInfo(); //创建预支付订单对象,用于统一下单的数据传输,构造方法里的都是官方API必填的参数,有需要的话,其余参数可自行补充 WechatPayInfo payInfo = new WechatPayInfo(BODY, OUT_TRADE_NO, TOTAL_FEE, WechatPayConfigurations.getNotifyUrl(NOTIFY_URL_SUFFIX), WechatPayConst.TRADE_TYPE_APP, SPBILL_CREATE_IP); //调用微信支付助手工具类的preOrder方法,统一下单 wechatPreOrderInfo = WechatPayAssistant.preOrder(payInfo);
参数说明
1.BODY是订单描述
2.OUT_TRADE_NO是商户订单号,在你的项目里必须唯一
3.TOTAL_FEE是价格,必须为Integer类型,值为浮点数的原始价格*100,如实际价格为11.99元,需传入1199.
4.异步回调地址,WechatPayConfigurations.getNotifyUrl的方法会根据NOTIFY_URL_SUFFIX筛选对应的回调地址,适用于多种类型支付的场景
5.TRADE_TYPE是支付类型,工具包直接有定义好了常量工具类,WechatPayConst.TRADE_TYPE_APP是APP支付,想要网页支付(就是扫码支付)或者公众号支付(我还没测试过)的也可以选WechatPayConst.TRADE_TYPE_SWEEP_CODE,WechatPayConst.TRADE_TYPE_OFFICIAL_ACCOUNT。Chinglish过关的都看得懂吧
6.spbill_create_ip就是客户端IP啦
到这里微信APP支付的统一下单就完成了,只要将wechatPreOrderInfo对象返回给APP端就可以调起支付了。三行代码就OJBK了。
支付宝APP支付示例
String orderString = “支付宝APP支付需要返回给APP的字符串”; //创建支付宝APP支付的数据模型 //注:此处用的支付宝官方的SDK,所以使用工具类填写必填参数 AlipayTradeAppPayModel model = AlipayModelUtils.getAppPayModel(BODY, SUBJECT, OUT_TRADE_NO , TIME_EXPRESS, TOTAL_ACCOUNT); //支付统一收单,我还是喜欢叫这个是预支付 //调用支付宝支付助手里的preOrder4XXX方法(后期会做成方法重载的公用方法,赶项目没时间去优化这个工具包先) orderString = AlipayAssistant.preOrder4App(model, NOTIFY_URL_SUFFIX);
参数说明
1.BODY就是订单描述啦,微信的好像是订单描述,订单标题都是一个东西
2.SUBJECT就是订单标题
3.OUT_TRADE_NO商户订单号,在你的项目中必须唯一
4.TIME_EXPRESS,订单有效时间,单位是分钟
5.TOTAL_ACCOUNT就是订单的价格,像微信支付的total_fee,不同的是支付宝用的是浮点数,单位是元,如11.99,你就填11.99,一般价格我用BigDecimal,所以这里我也用了BigDecimal。
除去注释,也是三行代码。
工具包传送门(觉得可以的话别忘了给我一个小星星)
https://github.com/zeemood/synergic-developing
具体方法请看下一篇手记微信支付和支付宝支付的三行代码开发教程——开发就像填表格(二)
以下是“肺”话,觉得不好的到此为止,开发时间宝贵。
或许有人会问,你的APPID和APP_SECRECT之类的参数呢?
我在做三方支付的开发时,先做的微信支付,又是XML,XML里面又是JSON的,烦死了。后来做了支付宝支付,支付宝有给服务端提供SDK,用起来那叫一个酸爽啊,除了看长长的API文档参数表格之外,真的是给开发省了很多时间。
支付宝提供的服务端SDK就是把公用参数封装好了,在实例化AlipayClient的时候,把APPID之类的公用参数填进去,创建不同支付的对象实例就可以给到支付宝那边了。我就想着把烦人的微信也做成这样。我觉的哈,java是面向对象的编程,能用对象解决就用对象解决,不想浪费时间在xml上。