本文將詳細介紹如何使用Java代碼實現微信和支付寶分賬功能,以及實現自定義分賬規則和查詢分賬結果。
一、微信支付分賬
微信支付分賬是指商戶將訂單的資金分給多個分賬接收方。常用於分潤、提成、傭金等場景。
下面是Java實現微信支付分賬的代碼:
public static String profitSharing(String appId, String mchId, String nonceStr, String sign, String signType,
String partnerTradeNo, String openId, String amount, String desc) throws Exception {
Map params = new HashMap<>();
params.put("appId", appId);
params.put("mchId", mchId);
params.put("nonceStr", nonceStr);
params.put("sign", sign);
params.put("signType", signType);
params.put("partnerTradeNo", partnerTradeNo);
params.put("openid", openId);
params.put("amount", amount);
params.put("description", desc);
String response = HttpUtil.post(WxPayConstants.ProfitSharingUrl, buildXml(params));
Map result = WxPaySignature.checkIsSignValidFromResponseString(response, signType, config.getKey());
return result.get("return_code");
}
二、支付寶分賬
支付寶分賬是指商戶將訂單的資金分給多個分賬接收方。常用於分潤、提成、傭金等場景。
下面是Java實現支付寶分賬的代碼:
public static AlipayFundTransToaccountTransferResponse transfer(String appId, String privateKey, String publicKey,
String outBizNo, String payeeAccount, String amount, String remark) throws AlipayApiException {
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", appId, privateKey,
"json", "UTF-8", publicKey, "RSA2");
AlipayFundTransToaccountTransferRequest request = new AlipayFundTransToaccountTransferRequest();
request.setBizContent("{\"out_biz_no\":\"" + outBizNo + "\","
+ "\"payee_type\":\"ALIPAY_LOGONID\",\"payee_account\":\"" + payeeAccount + "\","
+ "\"amount\":\"" + amount + "\",\"payer_show_name\":\"XXX\",\"payee_real_name\":\"XXX\","
+ "\"remark\":\"" + remark + "\"}");
AlipayFundTransToaccountTransferResponse response = alipayClient.execute(request);
return response;
}
三、自定義分賬規則
在實際應用中,需要根據具體業務需求來設置分賬規則。比如不同的分賬接收方分到不同的金額、比例等。
下面是Java實現自定義分賬規則的代碼:
public static String profitSharing(String appId, String mchId, String nonceStr, String sign, String signType,
String partnerTradeNo, Map receivers, String totalAmount, String desc) throws Exception {
Map params = new HashMap<>();
params.put("appId", appId);
params.put("mchId", mchId);
params.put("nonceStr", nonceStr);
params.put("sign", sign);
params.put("signType", signType);
params.put("partnerTradeNo", partnerTradeNo);
params.put("receivers", receivers);
params.put("totalAmount", totalAmount);
params.put("description", desc);
String response = HttpUtil.post(WxPayConstants.ProfitSharingUrl, buildXml(params));
Map result = WxPaySignature.checkIsSignValidFromResponseString(response, signType, config.getKey());
return result.get("return_code");
}
四、查詢分賬結果
為了保證分賬的準確性和及時性,商戶需要及時查詢分賬結果。以下是Java實現查詢分賬結果的代碼:
public static String queryProfitSharing(String appId, String mchId, String nonceStr, String sign, String signType,
String outTradeNo) throws Exception {
Map params = new HashMap<>();
params.put("appId", appId);
params.put("mchId", mchId);
params.put("nonceStr", nonceStr);
params.put("sign", sign);
params.put("signType", signType);
params.put("outTradeNo", outTradeNo);
String response = HttpUtil.post(WxPayConstants.ProfitSharingQueryUrl, buildXml(params));
Map result = WxPaySignature.checkIsSignValidFromResponseString(response, signType, config.getKey());
return result.get("result_code");
}
五、總結
本文詳細介紹了Java實現微信支付寶分賬功能的方法,包括基礎的分賬功能、自定義分賬規則和查詢分賬結果。希望對開發者有所幫助。
原創文章,作者:BDZIP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/374897.html
微信掃一掃
支付寶掃一掃