App 支付 API 必须通过支付宝提供的服务端 SDK 来调用。
private AlipayClient getAlipayClient() {
// GATEWAY=网关,APP_ID,private_key
return new DefaultAlipayClient(GATEWAY, APP_ID, PRIVATE_KEY, "json", "UTF-8", PUBLIC_KEY, "RSA2");
}
public boolean createAppOrderAPI(PayOrder order) {
try {
AlipayClient alipayClient = getAlipayClient();
AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest ();
AlipayTradeWapPayModel model = new AlipayTradeWapPayModel();
model.setOutTradeNo(order.getUnionId()); // 唯一字符串
model.setProductCode("QUICK_MSECURITY_PAY"); //必填,销售产品码。商家和支付宝签约的产品码,APP 支付功能中该值固定为 QUICK_MSECURITY_PAY
model.setTotalAmount(order.getStrAmount()); //金钱
model.setSubject(order.getBoxTitle()); //必填,商品的标题/交易标题/订单标题/订单关键字等。 不可使用特殊字符,如 /,=,& 等。
request.setBizModel(model);
AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
order.setExtra1(response.getBody()); //返回结果
order.setPaymentResponseTime(DateUtil.getStrDateTime());
order.setPaymentUrl(PAY_PAGE_URL + "/" + order.getId());
return true;
} catch (Exception e) {
log.error("===error=== alipay executePayment error msg: {}", e.getMessage());
return false;
}
}
H5下单
public boolean executePayment(PayOrder order) {
try {
AlipayClient alipayClient = getAlipayClient();
AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
AlipayTradeWapPayModel model = new AlipayTradeWapPayModel();
model.setOutTradeNo(order.getUnionId());
model.setTotalAmount(order.getStrAmount());
model.setSubject(order.getGoodsTitle());
request.setBizModel(model);
request.setNotifyUrl(PAY_CALLBACK_URL);
AlipayTradeWapPayResponse response = alipayClient.pageExecute(request);
order.setExtra1(response.getBody());
order.setPaymentResponseTime(DateUtil.getStrDateTime());
order.setPaymentUrl(PAY_PAGE_URL + "/" + order.getId());
return true;
} catch (Exception e) {
log.error("===error=== alipay executePayment error msg: {}", e.getMessage());
return false;
}
}
版权声明:本文为weixin_46919552原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。