多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 注意:本文档后期不在跟新,新文档迁移到:[http://www.openkit.cc/docs/openkit/#/](http://www.openkit.cc/docs/openkit/#/) # 首先感谢使用OpenKit工具包 ## 反馈交流QQ群:696279396 # 注意这里暂时只支持APP端支付,网页端支付将在2.0版本增加 ## APP发起支付 - 首先我们需要 new 一个 AliPayConfig 对象 ```java /** * appId:(必填)APPId * privateKey:(必填)密钥 * publicKey:(必填)公钥 * serverUrl:(必填)支付宝开放安全地址 * doMain:(必填)支付宝返回回调地址前缀 * charset:(必填)设置字符集编码 * format:(必填)仅支持JSON * signType:(必填)商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 */ AliPayConfig aliPayConfig = new AliPayConfig() ``` - 接下来,new 一个商品订单详情 ``` /** * body:(必填)商品描述 * subject:(必填)商品名称 * outTradeNo:(必填)商户订单号 可以使用 KitUtil.getOrderCode() * timeoutExpress:(必填)有效时间;正常设置 30m 30分钟 * totalAmount:(必填)价格 * productCode:(必填)支付方式 QUICK_MSECURITY_PAY 即时到账 * notifyUrl:(必填)回调地址 */ // 你又三种方法,可以造出对象 // 直接new一个新的,然后利用set掺入数据 Alipay alipay = new Alipay() /** * 默认了时间和支付方式 * @param body * @param subject * @param outTradeNo * @param totalAmount * @param notifyUrl */ Alipay alipay =new Alipay(String body, String subject,String outTradeNo,String totalAmount,String notifyUrl) /** * 默认了支付方式 * @param body * @param subject * @param outTradeNo * @param timeoutExpress * @param totalAmount * @param notifyUrl */ Alipay alipay =new Alipay(String body, String subject,String outTradeNo,String timeoutExpress,String totalAmount,String notifyUrl) /** * 全部自定义 * @param body * @param subject * @param outTradeNo * @param timeoutExpress * @param totalAmount * @param productCode * @param notifyUrl */ Alipay alipay =new Alipay(String body, String subject,String outTradeNo,String timeoutExpress,String totalAmount,String productCode,String notifyUrl) ``` - 接下去,实例化支付宝支付接口 ``` AlipayService alipayService = new AlipayServiceImpl(); ``` - 接着,你只要直接调用下面的方法就可以了 ``` alipayService.aliAppPay(AliPayConfig aliPayConfig,Alipay alipay) ``` - 返回值中 msg为200,说明成功 判断是订单号生成成功还是失败 ## 单笔转账到个人支付宝账号 - 首先我们需要 new 一个 AliPayConfig 对象 - 接下来,new 一个转账订单详情 ``` /** * outBizNo:(必填)商品描述 * payeeAccount:(必填)商品名称 * amount:(必填)商户订单号 可以使用 KitUtil.getOrderCode() * payeeRealName:(必填)有效时间;正常设置 30m 30分钟 * payerShowName:(必填)价格 * remark:(必填)支付方式 QUICK_MSECURITY_PAY 即时到账 * payeeType:(必填)回调地址 */ // 你又三种方法,可以造出对象 // 直接new一个新的,然后利用set掺入数据 AlipayToIndividual alipayToIndividual = new AlipayToIndividual() /** * 默认了 支付方式 */ AlipayToIndividual alipayToIndividual =new AlipayToIndividual(String outBizNo, String payeeAccount,String amount,String payeeRealName,String payerShowName,String remark) /** * 默认了支付方式 * @param body * @param subject * @param outTradeNo * @param timeoutExpress * @param totalAmount * @param notifyUrl */ AlipayToIndividual alipayToIndividual =new AlipayToIndividual(String outBizNo, String payeeAccount,String amount,String payeeRealName,String payerShowName,String remark,String payeeType) ``` - 返回值是 boolean 那么 true 表示成功,false:表示失败 - 回调函数编写示例 ```java public Object alipayReturn(HttpServletRequest request, HttpServletResponse response){ //获取支付宝POST过来反馈信息 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 = false; try { flag = AlipaySignature.rsaCheckV1(params, aliPayConfig.getPublicKey(), aliPayConfig.getCharset(),"RSA2"); } catch (AlipayApiException e) { e.printStackTrace(); } // 通知支付宝,会调成功 PrintWriter writer = response.getWriter(); if(flag){ String notifyStr = XMLUtil.setXML("SUCCESS", ""); writer.write(notifyStr); writer.flush(); return notifyStr; }else{ String notifyStr = XMLUtil.setXML("LFAI", ""); writer.write(notifyStr); writer.flush(); return notifyStr; } } ``` ## 回调说明 具体回调参数见,支付宝开发文档 ## 反馈交流QQ群:696279396 ## 赞助 ![](https://box.kancloud.cn/bf6f9c0e4f5a786c20d02c56b56a0eaf_600x500.png)