|
@@ -13,11 +13,14 @@ import com.alibaba.dubbo.config.annotation.Service;
|
|
|
import com.alipay.api.AlipayApiException;
|
|
|
import com.alipay.api.AlipayClient;
|
|
|
import com.alipay.api.AlipayResponse;
|
|
|
+import com.alipay.api.domain.AlipayTradeAppPayModel;
|
|
|
import com.alipay.api.request.AlipayDataDataserviceBillDownloadurlQueryRequest;
|
|
|
+import com.alipay.api.request.AlipayTradeAppPayRequest;
|
|
|
import com.alipay.api.request.AlipayTradeCloseRequest;
|
|
|
import com.alipay.api.request.AlipayTradePagePayRequest;
|
|
|
import com.alipay.api.request.AlipayTradeWapPayRequest;
|
|
|
import com.alipay.api.response.AlipayDataDataserviceBillDownloadurlQueryResponse;
|
|
|
+import com.alipay.api.response.AlipayTradeAppPayResponse;
|
|
|
import com.alipay.api.response.AlipayTradeCloseResponse;
|
|
|
import com.alipay.api.response.AlipayTradePrecreateResponse;
|
|
|
import com.alipay.demo.trade.config.Configs;
|
|
@@ -269,4 +272,32 @@ public class AliPayServiceImpl implements IAliPayService {
|
|
|
}
|
|
|
return form;
|
|
|
}
|
|
|
+ @Override
|
|
|
+ public String appPay(Product product) {
|
|
|
+ String orderString = Constants.FAIL;
|
|
|
+ // 实例化客户端
|
|
|
+ AlipayClient alipayClient = AliPayConfig.getAlipayClient();
|
|
|
+ // 实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
|
|
|
+ AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
|
|
|
+ // SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
|
|
|
+ AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
|
|
|
+ model.setBody(product.getBody());
|
|
|
+ model.setSubject(product.getSubject());
|
|
|
+ model.setOutTradeNo(product.getOutTradeNo());
|
|
|
+ model.setTimeoutExpress("30m");
|
|
|
+ model.setTotalAmount(product.getTotalFee());
|
|
|
+ model.setProductCode("QUICK_MSECURITY_PAY");
|
|
|
+ request.setBizModel(model);
|
|
|
+ request.setNotifyUrl("商户外网可以访问的异步地址");
|
|
|
+ try {
|
|
|
+ // 这里和普通的接口调用不同,使用的是sdkExecute
|
|
|
+ AlipayTradeAppPayResponse response = alipayClient
|
|
|
+ .sdkExecute(request);
|
|
|
+ orderString = response.getBody();//就是orderString 可以直接给客户端请求,无需再做处理。
|
|
|
+ //System.out.println(response.getBody());
|
|
|
+ } catch (AlipayApiException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return orderString ;
|
|
|
+ }
|
|
|
}
|