doum
5 天以前 d1171676ed28846f515250969f6b720523e2871d
server/services/src/main/java/com/doumee/config/alipay/AlipayFundTransUniTransfer.java
@@ -1,55 +1,94 @@
package com.doumee.config.alipay;
import com.alibaba.fastjson.JSONObject;
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.AlipayFundTransUniApi;
import com.alipay.v3.model.*;
import com.wechat.pay.java.core.RSAAutoCertificateConfig;
import lombok.extern.slf4j.Slf4j;
import okhttp3.OkHttpClient;
import com.wechat.pay.java.core.http.*;
import java.util.ArrayList;
import java.util.List;
@Slf4j
public class AlipayFundTransUniTransfer {
    public static void main(String[] args) throws ApiException  {
        downLoadCertificates();
    }
    /**
     * API安全加密配置
     */
    private static RSAAutoCertificateConfig rsaAutoCertificateConfig() {
        return new RSAAutoCertificateConfig.Builder()
                // 商户号
                .merchantId("1629568742")
                // 商户API证书私钥的存放路径
                .privateKeyFromPath("D://ptzs/apiclient_key.pem")
                // 商户API证书序列号
                .merchantSerialNumber("25D19D18217F4588841E5CD1AA0D1533DE8AF84A")
                // APIv3密钥
                .apiV3Key("NJTLJSTZYXZRGScaiwubuzichanbu666")
                .build();
    }
    /**
     * 下载证书
     */
    public static void downLoadCertificates() {
        OkHttpClient okHttpClient = new OkHttpClient();
        HttpClient httpClient = new DefaultHttpClientBuilder()
                .config(rsaAutoCertificateConfig())
                .okHttpClient(okHttpClient)
                .build();
        HttpHeaders headers = new HttpHeaders();
        headers.addHeader("Accept", MediaType.APPLICATION_JSON.getValue());
        HttpRequest executeSendGetHttpRequest = new HttpRequest.Builder()
                .httpMethod(HttpMethod.GET)
                .url("https://api.mch.weixin.qq.com/v3/certificates")
                .headers(headers)
                .build();
        try {
            HttpResponse<JSONObject> execute = httpClient.execute(executeSendGetHttpRequest, JSONObject.class);
            JSONObject responseBody = execute.getServiceResponse();
            log.info("下载平台证书返回:{}", responseBody.toString());
        } catch (Exception e) {
            log.error("下载平台证书异常", e);
        }
    }
    public static void testTransger( ) throws ApiException  {
        // 初始化SDK
        ApiClient defaultClient = Configuration.getDefaultApiClient();
        // 初始化alipay参数(全局设置一次)
        defaultClient.setAlipayConfig(getAlipayConfig());
        // 构造请求参数以调用接口
        AlipayFundTransUniApi api = new AlipayFundTransUniApi();
        AlipayFundTransUniTransferModel data = new AlipayFundTransUniTransferModel();
        // 设置商家侧唯一订单号
        data.setOutBizNo("202606300001");
        // 设置订单总金额
        data.setTransAmount("1");
        // 设置描述特定的业务场景
        data.setBizScene("DIRECT_TRANSFER");
        // 设置业务产品码
        data.setProductCode("TRANS_ACCOUNT_NO_PWD");
        // 设置转账业务的标题
        data.setOrderTitle("201905代发");
        // 设置原支付宝业务单号
        data.setOriginalOrderId("20190620110075000006640000063056");
        // 设置收款方信息
        Participant payeeInfo = new Participant();
        payeeInfo.setIdentity("15345690849");
        payeeInfo.setName("江萍");
        payeeInfo.setIdentityType("ALIPAY_LOGON_ID");
        data.setPayeeInfo(payeeInfo);
        // 设置业务备注
        data.setRemark("201905代发");
        // 设置转账场景名称
        data.setTransferSceneName("佣金报酬");
@@ -74,7 +113,6 @@
        signData.setOriCharSet("UTF-8");
        data.setSignData(signData);
*/
        try {
            AlipayFundTransUniTransferResponseModel response = api.transfer(data);
        } catch (ApiException e) {