package com.mzl.flower.service.impl.pay; import com.alipay.api.AlipayClient; import com.alipay.api.domain.AlipayMerchantSolcreditserviceprodOrderQueryModel; import com.alipay.api.domain.AlipayTradeQueryModel; import com.alipay.api.request.AlipayMerchantSolcreditserviceprodOrderQueryRequest; import com.alipay.api.request.AlipayTradeQueryRequest; import com.alipay.api.response.AlipayMerchantSolcreditserviceprodOrderQueryResponse; import com.alipay.api.response.AlipayTradeQueryResponse; import com.mzl.flower.config.pay.AlipayProperties; import com.mzl.flower.service.pay.AlipayService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Service @Slf4j public class AlipayServiceImpl implements AlipayService { @Autowired private AlipayProperties alipayProperties; @Autowired AlipayClient alipayClient; @Override public AlipayTradeQueryResponse queryOrderByOutOrderNo(String outOrderNo) { try { // 构造请求参数以调用接口 AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); AlipayTradeQueryModel model = new AlipayTradeQueryModel(); // 设置订单支付时传入的商户订单号 model.setOutTradeNo(outOrderNo); // 设置支付宝交易号 // model.setTradeNo("2014112611001004680 073956707"); // 设置查询选项 List queryOptions = new ArrayList(); queryOptions.add("trade_settle_info"); model.setQueryOptions(queryOptions); request.setBizModel(model); // 第三方代调用模式下请设置app_auth_token // request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->"); AlipayTradeQueryResponse response = alipayClient.execute(request); System.out.println(response.getBody()); if (response.isSuccess()) { System.out.println("调用成功"); } else { System.out.println("调用失败"); // sdk版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接 // String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response); // System.out.println(diagnosisUrl); } return response; } catch (Exception e) { throw new RuntimeException(e); } } @Override public String notifyCallBack() { return ""; } }