Java调用支付宝完成支付
话不多说,直接开撸!!!
import com.egzosn.pay.ali.api.AliPayConfigStorage;
import com.egzosn.pay.ali.api.AliPayService;
import com.egzosn.pay.ali.bean.AliTransactionType;
import com.egzosn.pay.common.api.PayService;
import com.egzosn.pay.common.bean.PayOrder;
import com.egzosn.pay.common.http.HttpConfigStorage;
import com.egzosn.pay.common.util.sign.SignUtils;
import com.shineyoo.api.platform.core.response.Result;
import com.shineyoo.api.platform.core.response.ResultGenerator;
import com.shineyoo.edu.organizationOrder.domain.OrganizationOrder;
import com.shineyoo.edu.organizationOrder.service.IOrganizationOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;/*** 发起支付入口*/
@RestController
@RequestMapping("ali")
public class AliPayController {private PayService service = null;@Autowiredprivate IOrganizationOrderService orderService;@PostConstructpublic void init() {AliPayConfigStorage aliPayConfigStorage = new AliPayConfigStorage();//aliPayConfigStorage.setPid("2088102169916436");// aliPayConfigStorage.setAppid("2017112400141933");// aliPayConfigStorage.setKeyPublic("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAthqKx5rnB5+LMqiaxLaUHU1jyMAcaECq2MzSUZVK+kFj9ai2Y3cHNEo0Idq/Mhup7vlxY2RZ04KrwD84NTtXP2JKN345PFhJp7fWR2bQKeuXPzoLdNGy8LaPlPQIJl03xbojVW/1OMykb70yIYgZaCg6muQ9YWitAPVqlNHjIa42k6/Bx51WoW8mKJB6In5LOvZbi1UfLkkRIpl3c8f8CfnkFgOISMDR2Xm+eJB+uGGYG94CxdkvnC81DKDfw2Bqu5v6aeH65LSBjnHaiDq2gsGVL1wVOYqZfQv/Ag7H+911Mec3eVxFzq73cPE7UXSg5lLGsN+ugGNzZsl6o6L0ywIDAQAB");// aliPayConfigStorage.setKeyPrivate("MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCIGjTDUImUvPn+H9TtYsZioGhxw6EPl/VmNrC7RmVpADTBKvqaCFUzsG1UZvwnLO08nCqhW70uJZz7rSiXurAOnHuSoUoRuCPtXcg7vShLUtorjYHMVzDBHQw5Civ5r6NlYMRnjvxLpM4pmEhDGSqncrc6m57RXxsL/0sLq2kTDOSo8sCmDcOENeaMpV62/Z9H3LH4qwLJ3VD8HzI5HlvM/w4sSEymtrzpQF/pZm8x99yDy0SmspAHcm6mOJ/Uh4aTm06bscRW02/3I3cCCv346qzpzoYtl1IDFrjCw+5yre2i9rbEewM1EsCOZ0VPT9Zkve7uF2fwfTTs1fsII5ANAgMBAAECggEAaaJ9ZUKzJgBuv/CQ4RaTB6Wcqv+9mE7HJug3z4LZ3t9MEsl66+afypiaorGz7+wMzcgfxlFfydtjtms1YF6DmzOVLb+Fr68OI4Nwj/1Gsv/BWaBhJ+pcauZSwErGyuqplVu/1OjDpSpq4RnSrFFyK7j7wb9bSwHYCj3BT3NhAGkSi7Vqv35ILyccpVnW2Pli43zyL7nksZDKmxb12CjzfkhdO7S25jTrYF0oUS4SOPLAnLG93HAAizN6u5uD0fq2F6d/PtPatAffAh838HvcS3eUpBIXT+2ZWq+N8hmZXbHujt2MR+N7VMsPLD38UwY/lJ+Lm+qZ2TF8BFERrRrs+QKBgQDYE4teWZ6C4+yAhSTusak5fQ2AW6dI+w5viHCDJJxdjTzGTeSClGVIKTrHGqHAtm903fAAERySxJS0xQFuMIVx0axWBZPSbTIcy7aGeOhBtVdXOOLLHsU6jOW5gMrb+tEUJ8So9XAPMxFxSKb8rA8UGvIjN21WfJSr1f3t813+YwKBgQChP+BHxV5LHgz3H53ZM/FNRya8i9opnrT4heIdX76e0gOCOBCna8CkugUhZaP7Mqmfr6szmkb1dt1+ssBSQYXj/NHWI9spYpOHmgk1bTRYrXyvuu62lrFFaPXl/qA5qErJEffy/JIrTBD41QKF5GpJbOtpLGQp0A2Cuo52CPEKzwKBgAacSnY/fab5fCHOcPvQeaHlnoUfyLVl4OIupWqNsy71hDd46JXKHnMft8mhmfNAYZaMt6v42gvvcbE6GboaR+rchE45a3VTm+XfoZzplAl2l852UhHuxg/tgZW0SACE4uKf+NdGcwA0CsORenJefTObQ28qYfD0bMP5DwS5nlWLAoGAYrKoYwXJq4zfPrvZcEM85aIxcaLgjC0adCvutTAPi0Lc5u3OM8vehHVgAosmDfF6pcVusw0xdbml5ZEf6rk0bNIo1jvoP7KYvp1oGY2YRtcZxK5UwuoF44hVSsvJ4sDB1cTr0Y0LIvlSQhyPiMjAzeSfSybiwD0ap/Pskw7yCz0CgYEA0TK9mveq1JuzuVH4jLk9WGciFbpRgyqHgKjfT2zAfqtqJpklpLyKjbrO2sFM3bPlsYQkfw4U2L/yDwmOCMya+yj7XrXCNMvDjVHuDpPClie7z2u7BNbqc9k/4I0kUG5XCebF+54OLfjpUFheZ+AXvLSp/SOkVoQB01ViENhfiBM=");//善友aliPayConfigStorage.setAppid("");//appidaliPayConfigStorage.setKeyPublic("");//共有密钥aliPayConfigStorage.setKeyPrivate("");//私有密钥aliPayConfigStorage.setNotifyUrl("");//回调地址aliPayConfigStorage.setReturnUrl("");//支付成功返回地址aliPayConfigStorage.setSignType(SignUtils.RSA2.name());//aliPayConfigStorage.setSeller("");aliPayConfigStorage.setInputCharset("utf-8");//是否为测试账号,沙箱环境aliPayConfigStorage.setTest(false);//请求连接池配置HttpConfigStorage httpConfigStorage = new HttpConfigStorage();//最大连接数httpConfigStorage.setMaxTotal(20);//默认的每个路由的最大连接数httpConfigStorage.setDefaultMaxPerRoute(10);service = new AliPayService(aliPayConfigStorage, httpConfigStorage);//增加支付回调消息拦截器//service.addPayMessageInterceptor(new AliPayMessageInterceptor());//设置回调消息处理//service.setPayMessageHandler(spring.getBean(AliPayMessageHandler.class));}/*** showdoc* @title 支付宝页面* @description 支付宝页面* @method post* @url ip:port/ali/toPay.html* @return* @remark* @number 1*/@RequestMapping(value = "toPay.html", produces = "text/html;charset=UTF-8")public Result toPay(@RequestBody Map map) {String orderId = "";if (map.get("orderId") != null) {orderId = map.get("orderId").toString();} else {return ResultGenerator.genFailedResult();}List<OrganizationOrder> orders = orderService.selectOrganizationOrderList(new OrganizationOrder().setOrderNo(orderId));OrganizationOrder organizationOrder = new OrganizationOrder();if (orders != null && orders.size() > 0) {organizationOrder = orders.get(0);}//及时收款PayOrder order = new PayOrder(organizationOrder.getComment(), "余额充值", new BigDecimal(organizationOrder.getPrice()), organizationOrder.getOrderNo(), AliTransactionType.PAGE);return ResultGenerator.genOkResult(service.toPay(order));}/*** 支付回调地址** @param request 请求* @return 返回对应的响应码* @throws IOException IOException*/@Deprecated@RequestMapping(value = "payBackBefore")public String payBackBefore(HttpServletRequest request) throws IOException {//获取支付方返回的对应参数Map<String, Object> params = service.getParameter2Map(request.getParameterMap(), request.getInputStream());if (null == params) {return service.getPayOutMessage("fail", "失败").toMessage();}//校验if (service.verify(params)) {//这里处理业务逻辑String orderId = params.get("out_trade_no").toString();Float price = Float.parseFloat(params.get("total_amount").toString());List<OrganizationOrder> orders = orderService.selectOrganizationOrderList(new OrganizationOrder().setOrderNo(orderId));if(orders != null && orders.size()> 0){if(orders.get(0).getPrice().equals(price)){//支付成功,更新订单信息orderService.updateOrgOrder(orderId,1);}}//......业务逻辑处理块........return service.successPayOutMessage(null).toMessage();}return service.getPayOutMessage("fail", "失败").toMessage();}
}
需要导入的pom
<pay.version>2.12.7-SNAPSHOT</pay.version><dependency><groupId>com.egzosn</groupId><artifactId>pay-java-ali</artifactId><version>${pay.version}</version></dependency>
上面的pom文件下不下来,可以引用我这个包
支付宝jar
Java调用支付宝完成支付相关推荐
- JAVA调用支付宝直充接口
分类: 技术空间 2009-01-03 00:31 7011人阅读 评论(4) 收藏 举报 java string payment url service object JAVA调用支付宝的直充 ...
- java对接支付宝实现支付功能
** java对接支付宝实现支付功能 ** Controller /*** 支付功能* @return*/ @RequestMapping("/test") public Mode ...
- java 调用支付宝支付接口
最近公司在做支付模块,在接入过程中遇到了很多坑,费了不少事,现在分享一下接入方法,也记录一下,以后可能还用的到.用的是支付宝的即时到帐支付功能和微信的扫码支付功能,相比起来,个人感觉支付宝的文档和接入 ...
- Java调用支付宝支付接口
一.场景:公司需要在网站上进行支付宝支付. 二.API:使用支付宝开放平台的支付能力-即时到账接口.支付宝开放平台链接 三.分析: 1.支付宝的文档比较容易看,主要是有相应的DEMO,我这里看的DEM ...
- java调用支付宝接口代码介绍
App支付产品介绍 更新时间:2018-05-08 场景介绍 适用于商家在App应用中集成支付宝支付功能. 商家APP调用支付宝提供的SDK,SDK再调用支付宝APP内的支付模块.如果用户已安装支付宝 ...
- Java实现支付宝APP支付实现记录
支付宝支付成功返回结果封装 import com.alibaba.fastjson.annotation.JSONField;import java.math.BigDecimal; import j ...
- 【支付宝支付】Java实现支付宝APP支付流程
前言 微信登录网页授权与APP授权 微信JSAPI支付 微信APP支付 微信APP和JSAPI退款 支付宝手机网站支付 支付宝APP支付 支付宝退款 以上我都放到个人公众号,搜一搜:JAVA大贼船,文 ...
- java实现支付宝接口---支付
java实现实现支付宝接口 蚂蚁沙箱环境 (Beta) 是协助开发者进行接口功能开发及主要功能联调的辅助环境.可以模拟实现支付宝的支付功能. 接下的实现技术是运用到springmvc注解方法实现的支付 ...
- php调用支付宝微信支付接口 免签约 实测能用
找了很多支付宝微信支付收款的办法,接入的时候发现根本不靠谱,终于实测到了一个可以用的,(验证效果不用改代码,php环境下Demo.php直接打开看就行了 附件放在下面了) 支付宝收款实测有效,微信支付 ...
最新文章
- 主要元素(超过一半元素)
- 深入理解C++中的mutable关键字 ​
- jq 获取当时时间的到秒_空军飞行员忆战机被鸟撞后的37秒
- 皮一皮:只恨不为女儿身...
- 三刺激值计算公式_常用的车削、铣削、钻削加工计算公式全在这里了,随用随查...
- 忘记手机绑定过的UC/交易猫账号怎么找回
- leetcode 525. Contiguous Array | 525. 连续数组(Java)
- 光华科技光刻胶_【收藏】6天5板!21只光刻胶概念(名单)“出炉”!
- unity3d 取锚点位置_周三手机课实时共享位置,方便朋友找到见面地点
- Spring AOP技术(基于AspectJ)的Annotation开发
- vscode取消底部横滚动条(自动换行)
- 【乐畅】工作积累 ---- 设置一个弹窗的层
- 宝塔面板安装和使用教程(详细)
- 前端-微信、企业微信JS-SDK实时调试方法
- 全家福缺一个人怎么P图上去-免费+效果好
- 基于BP神经网络的PID智能控制
- 新概念英语1册57课
- windo10系统哪个版本运行最快呢?
- windows +linux(ubuntu) 2020.7 双系统最新安装心得
- [unknown OJ] 养花