query_options
传入 trade_settle_info
查询分账信息,不能使用 alipay.trade.order.settle.query(交易分账查询接口)查询。package com.java.sdk.demo;
import com.alipay.v3.ApiClient;
import com.alipay.v3.ApiException;
import com.alipay.v3.ApiResponse;
import com.alipay.v3.Configuration;
import com.alipay.v3.util.GenericExecuteApi;
import com.alipay.v3.util.model.AlipayConfig;
import com.alipay.v3.util.model.CustomizedParams;
import com.alipay.v3.util.model.OpenApiGenericRequest;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class GenericExecute {
public static void main(String[] args) throws ApiException {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// 初始化alipay参数(全局设置一次)
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi.alipay.com");
alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
alipayConfig.setPrivateKey("<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->");
alipayConfig.setAlipayPublicKey("<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->");
defaultClient.setAlipayConfig(alipayConfig);
GenericExecuteApi api = new GenericExecuteApi();
Map<String, Object> bizParams = new HashMap<>();
Map<String, Object> bizContent = new HashMap<>();
Map<String, Object> extendParams = new HashMap<>();
extendParams.put("hb_fq_num", "3");
extendParams.put("hb_fq_seller_percent", "100");
extendParams.put("sys_service_provider_id", "2088511833207846");
extendParams.put("industry_reflux_info", "{\"scene_code\":\"metro_tradeorder\",\"channel\":\"xxxx\",\"scene_data\":{\"asset_name\":\"ALIPAY\"}}");
extendParams.put("specified_seller_name", "XXX的跨境小铺");
extendParams.put("royalty_freeze", "true");
extendParams.put("card_type", "S0JP0000");
bizContent.put("extend_params", extendParams);
bizContent.put("request_from_url", "https://");
bizContent.put("business_params", "{\"mc_create_trade_ip\":\"127.0.0.1\"}");
Map<String, Object> invoiceInfo = new HashMap<>();
invoiceInfo.put("details", "[{\"code\":\"100294400\",\"name\":\"服饰\",\"num\":\"2\",\"sumPrice\":\"200.00\",\"taxRate\":\"6%\"}]");
Map<String, Object> keyInfo = new HashMap<>();
keyInfo.put("is_support_invoice", true);
keyInfo.put("tax_num", "1464888883494");
keyInfo.put("invoice_merchant_name", "ABC|003");
invoiceInfo.put("key_info", keyInfo);
bizContent.put("invoice_info", invoiceInfo);
bizContent.put("out_trade_no", "20150320010101001");
bizContent.put("product_code", "FAST_INSTANT_TRADE_PAY");
bizContent.put("promo_params", "{\"storeIdType\":\"1\"}");
Map<String, Object> extUserInfo = new HashMap<>();
extUserInfo.put("cert_no", "362334768769238881");
extUserInfo.put("min_age", "18");
extUserInfo.put("mobile", "16587658765");
extUserInfo.put("fix_buyer", "F");
extUserInfo.put("identity_hash", "27bfcd1dee4f22c8fe8a2374af9b660419d1361b1c207e9b41a754a113f38fcc");
extUserInfo.put("cert_type", "IDENTITY_CARD");
extUserInfo.put("name", "李明");
extUserInfo.put("need_check_info", "F");
bizContent.put("ext_user_info", extUserInfo);
List<Map<String, Object>> goodsDetail = new ArrayList<>();
Map<String, Object> goodsDetail0 = new HashMap<>();
goodsDetail0.put("quantity", 1);
goodsDetail0.put("price", "2000");
goodsDetail0.put("goods_category", "34543238");
goodsDetail0.put("categories_tree", "124868003|126232002|126252004");
goodsDetail0.put("goods_id", "apple-01");
goodsDetail0.put("show_url", "http://www.alipay.com/xxx.jpg");
goodsDetail0.put("alipay_goods_id", "20010001");
goodsDetail0.put("goods_name", "ipad");
goodsDetail.add(goodsDetail0);
bizContent.put("goods_detail", goodsDetail);
Map<String, Object> subMerchant = new HashMap<>();
subMerchant.put("merchant_id", "2088000603999128");
subMerchant.put("merchant_type", "alipay");
bizContent.put("sub_merchant", subMerchant);
bizContent.put("integration_type", "PCWEB");
bizContent.put("merchant_order_no", "20161008001");
bizContent.put("qr_pay_mode", "1");
bizContent.put("subject", "Iphone6 16G");
bizContent.put("time_expire", "2016-12-31 10:05:01");
bizContent.put("total_amount", "88.88");
bizContent.put("qrcode_width", 100);
bizContent.put("store_id", "NJ_001");
bizParams.put("biz_content", bizContent);
try {
String response = api.pageExecute("alipay.trade.page.pay", "POST", bizParams);
System.out.println(response);
} catch (ApiException e) {
System.out.println("调用失败");
}
}
}
参数名称 | 参数说明 |
---|---|
subject | 必填,商品的标题/交易标题/订单标题/订单关键字等。 不可使用特殊字符,如 /,=,& 等。 |
product_code | 必填,销售产品码,与支付宝签约的产品码名称。目前电脑支付场景下仅支持 FAST_INSTANT_TRADE_PAY |
total_amount | 必填,订单总金额,单位为元,精确到小数点后两位,取值范围为 [0.01,100000000]。金额不能为0。 |
Map<String, String> paramsMap = ... //将异步通知中收到的所有参数都存放到 map 中
boolean signVerified = AlipaySignature.rsaCheckV1(paramsMap, ALIPAY_PUBLIC_KEY, CHARSET, SIGN_TYPE) //调用SDK验证签名
if (signVerified){
// TODO 验签成功后,按照支付结果异步通知中的描述,对支付结果中的业务内容进行二次校验,校验成功后在response 中返回success并继续商家自身业务处理,校验失败返回failure
} else {
// TODO 验签失败则记录异常日志,并在response中返回failure.
}
package com.java.sdk.demo;
import com.alipay.v3.ApiException;
import com.alipay.v3.ApiClient;
import com.alipay.v3.util.model.AlipayConfig;
import com.alipay.v3.Configuration;
import com.alipay.v3.api.AlipayTradeApi;
import com.alipay.v3.model.*;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AlipayTradeApiQuery {
public static void main(String[] args) throws ApiException {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// 初始化alipay参数(全局设置一次)
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi.alipay.com");
alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
alipayConfig.setPrivateKey("<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->");
alipayConfig.setAlipayPublicKey("<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->");
defaultClient.setAlipayConfig(alipayConfig);
AlipayTradeApi api = new AlipayTradeApi();
AlipayTradeQueryModel data = new AlipayTradeQueryModel();
List<String> queryOptions = new ArrayList<String>();
queryOptions.add("trade_settle_info");
data.setQueryOptions(queryOptions);
data.setOutTradeNo("20150320010101001");
data.setTradeNo("2014112611001004680 073956707");
data.setOrgPid("2088101117952222");
try {
AlipayTradeQueryResponseModel response = api.query(data);
} catch (ApiException e) {
AlipayTradeQueryDefaultResponse errorObject = (AlipayTradeQueryDefaultResponse) e.getErrorObject();
System.out.println("调用失败:" + errorObject);
}
}
}
package com.java.sdk.demo;
import com.alipay.v3.ApiException;
import com.alipay.v3.ApiClient;
import com.alipay.v3.util.model.AlipayConfig;
import com.alipay.v3.Configuration;
import com.alipay.v3.api.AlipayTradeApi;
import com.alipay.v3.model.*;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AlipayTradeApiRefund {
public static void main(String[] args) throws ApiException {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// 初始化alipay参数(全局设置一次)
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi.alipay.com");
alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
alipayConfig.setPrivateKey("<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->");
alipayConfig.setAlipayPublicKey("<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->");
defaultClient.setAlipayConfig(alipayConfig);
AlipayTradeApi api = new AlipayTradeApi();
AlipayTradeRefundModel data = new AlipayTradeRefundModel();
List<OpenApiRoyaltyDetailInfoPojo> refundRoyaltyParameters = new ArrayList<OpenApiRoyaltyDetailInfoPojo>();
OpenApiRoyaltyDetailInfoPojo refundRoyaltyParameters0 = new OpenApiRoyaltyDetailInfoPojo();
refundRoyaltyParameters0.setTransInType("userId");
refundRoyaltyParameters0.setRoyaltyScene("达人佣金");
refundRoyaltyParameters0.setAmount("0.1");
refundRoyaltyParameters0.setTransOut("2088101126765726");
refundRoyaltyParameters0.setRoyaltyType("transfer");
refundRoyaltyParameters0.setTransIn("2088101126708402");
refundRoyaltyParameters0.setDesc("分账给2088101126708402");
refundRoyaltyParameters0.setTransInName("张三");
refundRoyaltyParameters0.setTransOutType("userId");
refundRoyaltyParameters.add(refundRoyaltyParameters0);
data.setRefundRoyaltyParameters(refundRoyaltyParameters);
data.setOutRequestNo("HZ01RF001");
List<String> queryOptions = new ArrayList<String>();
queryOptions.add("refund_detail_item_list");
data.setQueryOptions(queryOptions);
data.setOutTradeNo("20150320010101001");
List<RefundGoodsDetail> refundGoodsDetail = new ArrayList<RefundGoodsDetail>();
RefundGoodsDetail refundGoodsDetail0 = new RefundGoodsDetail();
refundGoodsDetail0.setGoodsId("apple-01");
refundGoodsDetail0.setOutItemId("outItem_01");
refundGoodsDetail0.setOutSkuId("outSku_01");
refundGoodsDetail0.setRefundAmount("19.50");
refundGoodsDetail.add(refundGoodsDetail0);
data.setRefundGoodsDetail(refundGoodsDetail);
data.setTradeNo("2014112611001004680073956707");
data.setRefundAmount("200.12");
data.setRefundReason("正常退款");
try {
AlipayTradeRefundResponseModel response = api.refund(data);
} catch (ApiException e) {
AlipayTradeRefundDefaultResponse errorObject = (AlipayTradeRefundDefaultResponse) e.getErrorObject();
System.out.println("调用失败:" + errorObject);
}
}
}
ISV_GATEWAY_URL?charset=GBK&biz_content=
{
"trade_no":"2014112611001004680073956707","out_trade_no":"20150320010101001","out_request_no":"HZ01RF001","dback_status":"S","dback_amount":"1.01","bank_ack_time":"2020-06-02 14:03:48","est_bank_receipt_time":"2020-06-02 14:03:48"
}
&msg_method=alipay.trade.refund.depositback.completed&utc_timestamp=1516797622752&version=1.1&sign_type=RSA2¬ify_id=d275fec564e62af6bedbcee73f3f05fi5x&app_id=2013121700999429&sign=I+Y/lvqYUEEc10EPdpntRhFIQ==
参数名称 | 参数说明 |
---|---|
trade_no | 支付宝交易订单号 |
dback_status | 银行卡冲退状态。S - 成功F - 失败,银行卡冲退失败,资金自动转入用户支付宝余额 |
dback_amount | 银行卡冲退金额 |
bank_ack_time | 银行响应时间,格式为 yyyy-MM-dd HH:mm:ss |
est_bank_receipt_time | 预估银行入账时间,格式为 yyyy-MM-dd HH:mm:ss |
package com.java.sdk.demo;
import com.alipay.v3.ApiException;
import com.alipay.v3.ApiClient;
import com.alipay.v3.util.model.AlipayConfig;
import com.alipay.v3.Configuration;
import com.alipay.v3.api.AlipayTradeFastpayRefundApi;
import com.alipay.v3.model.*;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AlipayTradeFastpayRefundApiQuery {
public static void main(String[] args) throws ApiException {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// 初始化alipay参数(全局设置一次)
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi.alipay.com");
alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
alipayConfig.setPrivateKey("<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->");
alipayConfig.setAlipayPublicKey("<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->");
defaultClient.setAlipayConfig(alipayConfig);
AlipayTradeFastpayRefundApi api = new AlipayTradeFastpayRefundApi();
AlipayTradeFastpayRefundQueryModel data = new AlipayTradeFastpayRefundQueryModel();
data.setOutRequestNo("HZ01RF001");
List<String> queryOptions = new ArrayList<String>();
queryOptions.add("refund_detail_item_list");
data.setQueryOptions(queryOptions);
data.setOutTradeNo("2014112611001004680073956707");
data.setTradeNo("2021081722001419121412730660");
try {
AlipayTradeFastpayRefundQueryResponseModel response = api.query(data);
} catch (ApiException e) {
AlipayTradeFastpayRefundQueryDefaultResponse errorObject = (AlipayTradeFastpayRefundQueryDefaultResponse) e.getErrorObject();
System.out.println("调用失败:" + errorObject);
}
}
}
package com.java.sdk.demo;
import com.alipay.v3.ApiException;
import com.alipay.v3.ApiClient;
import com.alipay.v3.util.model.AlipayConfig;
import com.alipay.v3.Configuration;
import com.alipay.v3.api.AlipayTradeApi;
import com.alipay.v3.model.*;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AlipayTradeApiClose {
public static void main(String[] args) throws ApiException {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// 初始化alipay参数(全局设置一次)
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi.alipay.com");
alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
alipayConfig.setPrivateKey("<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->");
alipayConfig.setAlipayPublicKey("<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->");
defaultClient.setAlipayConfig(alipayConfig);
AlipayTradeApi api = new AlipayTradeApi();
AlipayTradeCloseModel data = new AlipayTradeCloseModel();
data.setOperatorId("YX01");
data.setOutTradeNo("HZ0120131127001");
data.setTradeNo("2013112611001004680073956707");
try {
AlipayTradeCloseResponseModel response = api.close(data);
} catch (ApiException e) {
AlipayTradeCloseDefaultResponse errorObject = (AlipayTradeCloseDefaultResponse) e.getErrorObject();
System.out.println("调用失败:" + errorObject);
}
}
}
package com.java.sdk.demo;
import com.alipay.v3.ApiException;
import com.alipay.v3.ApiClient;
import com.alipay.v3.util.model.AlipayConfig;
import com.alipay.v3.Configuration;
import com.alipay.v3.api.AlipayDataDataserviceBillDownloadurlApi;
import com.alipay.v3.model.*;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AlipayDataDataserviceBillDownloadurlApiQuery {
public static void main(String[] args) throws ApiException {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// 初始化alipay参数(全局设置一次)
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi.alipay.com");
alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
alipayConfig.setPrivateKey("<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->");
alipayConfig.setAlipayPublicKey("<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->");
defaultClient.setAlipayConfig(alipayConfig);
AlipayDataDataserviceBillDownloadurlApi api = new AlipayDataDataserviceBillDownloadurlApi();
String billType = "trade";
String billDate = "2016-04-05";
String smid = "2088123412341234";
try {
AlipayDataDataserviceBillDownloadurlQueryResponseModel response = api.query(billType, billDate, smid);
} catch (ApiException e) {
AlipayDataDataserviceBillDownloadurlQueryDefaultResponse errorObject = (AlipayDataDataserviceBillDownloadurlQueryDefaultResponse) e.getErrorObject();
System.out.println("调用失败:" + errorObject);
}
}
}
//将接口返回的对账单下载地址传入urlStr
String urlStr = "http://dwbillcenter.alipay.com/downloadBillFile.resource?bizType=X&userId=X&fileType=X&bizDates=X&downloadFileName=X&fileId=X" ;
//指定希望保存的文件路径
String filePath = "/Users/fund_bill_20210205.csv" ;
URL url = null ;
HttpURLConnection httpUrlConnection = null ;
InputStream fis = null ;
FileOutputStream fos = null ;
try {
url = new URL(urlStr);
httpUrlConnection = (HttpURLConnection) url.openConnection();
httpUrlConnection.setConnectTimeout( 5 * 1000 );
httpUrlConnection.setDoInput( true );
httpUrlConnection.setDoOutput( true );
httpUrlConnection.setUseCaches( false );
httpUrlConnection.setRequestMethod( "GET" );
httpUrlConnection.setRequestProperty( "Charsert" , "UTF-8" );
httpUrlConnection.connect();
fis = httpUrlConnection.getInputStream();
byte [] temp = new byte [ 1024 ];
int b;
fos = new FileOutputStream( new File(filePath));
while ((b = fis.read(temp)) != - 1 ) {
fos.write(temp, 0 , b);
fos.flush();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fis!= null ) fis.close();
if (fos!= null ) fos.close();
if (httpUrlConnection!= null ) httpUrlConnection.disconnect();
} catch (IOException e) {
e.printStackTrace();
}