概述
话不多说,直接开撸!!!
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;
@Autowired
private IOrganizationOrderService orderService;
@PostConstruct
public 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("");//appid
aliPayConfigStorage.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调用支付宝完成支付所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复