package com.ruoyi.system.vx;
|
|
import com.alipay.api.AlipayApiException;
|
import com.alipay.api.AlipayClient;
|
import com.alipay.api.DefaultAlipayClient;
|
import com.alipay.api.AlipayConfig;
|
import com.alipay.api.domain.AlipayTradePagePayModel;
|
import com.alipay.api.domain.ExtUserInfo;
|
import com.alipay.api.domain.InvoiceKeyInfo;
|
import com.alipay.api.response.AlipayTradePagePayResponse;
|
import com.alipay.api.domain.InvoiceInfo;
|
import com.alipay.api.request.AlipayTradePagePayRequest;
|
import com.alipay.api.domain.ExtendParams;
|
import com.alipay.api.domain.GoodsDetail;
|
import com.alipay.api.domain.SubMerchant;
|
|
import com.alipay.api.FileItem;
|
import java.util.Base64;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
public class AlipayTradePagePay {
|
|
public static void main(String[] args) throws AlipayApiException {
|
// 初始化SDK
|
AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig());
|
|
// 构造请求参数以调用接口
|
AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
|
AlipayTradePagePayModel model = new AlipayTradePagePayModel();
|
|
// 设置商户门店编号
|
model.setStoreId("NJ_001");
|
|
// 设置订单绝对超时时间
|
model.setTimeExpire("2016-12-31 10:05:01");
|
|
// 设置业务扩展参数
|
ExtendParams extendParams = new ExtendParams();
|
extendParams.setSysServiceProviderId("2088511833207846");
|
extendParams.setHbFqSellerPercent("100");
|
extendParams.setHbFqNum("3");
|
extendParams.setIndustryRefluxInfo("{\"scene_code\":\"metro_tradeorder\",\"channel\":\"xxxx\",\"scene_data\":{\"asset_name\":\"ALIPAY\"}}");
|
extendParams.setSpecifiedSellerName("XXX的跨境小铺");
|
extendParams.setRoyaltyFreeze("true");
|
extendParams.setCardType("S0JP0000");
|
model.setExtendParams(extendParams);
|
|
// 设置订单标题
|
model.setSubject("Iphone6 16G");
|
|
// 设置请求来源地址
|
model.setRequestFromUrl("https://");
|
|
// 设置产品码
|
model.setProductCode("FAST_INSTANT_TRADE_PAY");
|
|
// 设置PC扫码支付的方式
|
model.setQrPayMode("1");
|
|
// 设置商户自定义二维码宽度
|
model.setQrcodeWidth(100L);
|
|
// 设置请求后页面的集成方式
|
model.setIntegrationType("PCWEB");
|
|
// 设置订单包含的商品列表信息
|
List<GoodsDetail> goodsDetail = new ArrayList<GoodsDetail>();
|
GoodsDetail goodsDetail0 = new GoodsDetail();
|
goodsDetail0.setGoodsName("ipad");
|
goodsDetail0.setAlipayGoodsId("20010001");
|
goodsDetail0.setQuantity(1L);
|
goodsDetail0.setPrice("2000");
|
goodsDetail0.setGoodsId("apple-01");
|
goodsDetail0.setGoodsCategory("34543238");
|
goodsDetail0.setCategoriesTree("124868003|126232002|126252004");
|
goodsDetail0.setShowUrl("http://www.alipay.com/xxx.jpg");
|
goodsDetail.add(goodsDetail0);
|
model.setGoodsDetail(goodsDetail);
|
|
// 设置商户的原始订单号
|
model.setMerchantOrderNo("20161008001");
|
|
// 设置二级商户信息
|
SubMerchant subMerchant = new SubMerchant();
|
subMerchant.setMerchantId("2088000603999128");
|
subMerchant.setMerchantType("alipay");
|
model.setSubMerchant(subMerchant);
|
|
// 设置开票信息
|
InvoiceInfo invoiceInfo = new InvoiceInfo();
|
InvoiceKeyInfo keyInfo = new InvoiceKeyInfo();
|
keyInfo.setTaxNum("1464888883494");
|
keyInfo.setIsSupportInvoice(true);
|
keyInfo.setInvoiceMerchantName("ABC|003");
|
invoiceInfo.setKeyInfo(keyInfo);
|
invoiceInfo.setDetails("[{\"code\":\"100294400\",\"name\":\"服饰\",\"num\":\"2\",\"sumPrice\":\"200.00\",\"taxRate\":\"6%\"}]");
|
model.setInvoiceInfo(invoiceInfo);
|
|
// 设置商户订单号
|
model.setOutTradeNo("20150320010101001");
|
|
// 设置外部指定买家
|
ExtUserInfo extUserInfo = new ExtUserInfo();
|
extUserInfo.setCertType("IDENTITY_CARD");
|
extUserInfo.setCertNo("362334768769238881");
|
extUserInfo.setName("李明");
|
extUserInfo.setMobile("16587658765");
|
extUserInfo.setMinAge("18");
|
extUserInfo.setNeedCheckInfo("F");
|
extUserInfo.setIdentityHash("27bfcd1dee4f22c8fe8a2374af9b660419d1361b1c207e9b41a754a113f38fcc");
|
model.setExtUserInfo(extUserInfo);
|
|
// 设置订单总金额
|
model.setTotalAmount("88.88");
|
|
// 设置商户传入业务信息
|
model.setBusinessParams("{\"mc_create_trade_ip\":\"127.0.0.1\"}");
|
|
// 设置优惠参数
|
model.setPromoParams("{\"storeIdType\":\"1\"}");
|
|
request.setBizModel(model);
|
// 第三方代调用模式下请设置app_auth_token
|
// request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->");
|
|
AlipayTradePagePayResponse response = alipayClient.pageExecute(request, "POST");
|
// 如果需要返回GET请求,请使用
|
// AlipayTradePagePayResponse response = alipayClient.pageExecute(request, "GET");
|
String pageRedirectionData = response.getBody();
|
System.out.println(pageRedirectionData);
|
|
if (response.isSuccess()) {
|
System.out.println("调用成功");
|
} else {
|
System.out.println("调用失败");
|
// sdk版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接
|
// String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response);
|
// System.out.println(diagnosisUrl);
|
}
|
}
|
|
private static AlipayConfig getAlipayConfig() {
|
String privateKey = "<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->";
|
String alipayPublicKey = "<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->";
|
AlipayConfig alipayConfig = new AlipayConfig();
|
alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do");
|
alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
|
alipayConfig.setPrivateKey(privateKey);
|
alipayConfig.setFormat("json");
|
alipayConfig.setAlipayPublicKey(alipayPublicKey);
|
alipayConfig.setCharset("UTF-8");
|
alipayConfig.setSignType("RSA2");
|
return alipayConfig;
|
}
|
}
|