123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- using BasePaySdk.Request;
- using JiaZhiQuan.Common.Config;
- using System.Collections.Generic;
- using System;
- using Newtonsoft.Json.Linq;
- using Newtonsoft.Json;
- using NPOI.Util;
- using static JiaZhiQuan.Common.Models.CommonConst;
- namespace JiaZhiQuan.Common.JuheAPI.HuiFu {
- public class HuiFuApiYuEPay {
- public static BaseRequest InitReq(HuiFuCommonConfig huifuConf,
- HuiFuYuEPayInfo info) {
- // 2.组装请求参数
- V2TradeAcctpaymentPayRequest request = new V2TradeAcctpaymentPayRequest();
- // 请求流水号
- request.setReqSeqId(info.reqId);
- // 请求日期
- request.setReqDate(DateTime.Now.ToString("yyyyMMdd"));
- // 出款方商户号
- request.setOutHuifuId(info.out_huifu_id);
- // 支付金额
- request.setOrdAmt(CommonUtils.DivideAndRound(info.ord_amt, UNIT).ToString("0.00"));
- if (huifuConf.isDev) {
- request.setOrdAmt("0.01");
- }
- // 分账对象
- request.setAcctSplitBunch(getAcctSplitBunch(info, request));
- // 安全信息
- request.setRiskCheckData(getRiskCheckData());
- // 资金类型资金类型。支付渠道为中信E管家时,资金类型必填([详见说明](https://paas.huifu.com/open/doc/api/#/yuer/api_zxegjzllx))
- // request.setFundType("test");
- // 手续费承担方标识余额支付手续费承担方标识;商户余额支付扣收规则为接口指定承担方时必填!枚举值:<br/>OUT:出款方;<br/>IN:分账接受方。<br/><font color="green">示例值:IN</font>
- request.setTransFeeTakeFlag("OUT");
- // 设置非必填字段
- Dictionary<string, object> extendInfoMap = getExtendInfos(info);
- request.setExtendInfo(extendInfoMap);
- return request;
- }
- /**
- * 非必填字段
- * @return
- */
- private static Dictionary<string, object> getExtendInfos(HuiFuYuEPayInfo info) {
- // 设置非必填字段
- Dictionary<string, object> extendInfoMap = new Dictionary<string, object>();
- // ~~发起方商户号~~
- // extendInfoMap.Add("~~huifu_id~~", "");
- // 商品描述
- // extendInfoMap.Add("good_desc", "");
- // 备注
- // extendInfoMap.Add("remark", "");
- // 是否延迟交易
- extendInfoMap.Add("delay_acct_flag", "N");
- // 出款方账户号
- //extendInfoMap.Add("out_acct_id", "");
- // 支付渠道
- // extendInfoMap.Add("acct_channel", "");
- // 灵活用工标志
- // extendInfoMap.Add("hyc_flag", "");
- // 灵活用工平台
- // extendInfoMap.Add("lg_platform_type", "");
- // 代发模式
- // extendInfoMap.Add("salary_modle_type", "");
- // 落地公司商户号
- // extendInfoMap.Add("bmember_id", "");
- // 乐接活请求参数集合
- // extendInfoMap.Add("ljh_data", getLjhData());
- // 异步通知地址
- extendInfoMap.Add("notify_url", info.notifyUrl);
- return extendInfoMap;
- }
- private static object getAcctInfos(HuiFuYuEPayInfo info, V2TradeAcctpaymentPayRequest request) {
- Dictionary<string, object> obj = new Dictionary<string, object>();
- // 分账接收方ID
- obj.Add("huifu_id", info.huifu_id);
- // 分账金额
- obj.Add("div_amt", request.getOrdAmt());
- // 账户号
- // obj.Add("acct_id", "");
- // 分账百分比%
- // obj.Add("percentage_div", "");
- JArray objList = new JArray();
- objList.Add(JToken.FromObject(obj));
- return objList;
- }
- private static string getAcctSplitBunch(HuiFuYuEPayInfo info, V2TradeAcctpaymentPayRequest request) {
- Dictionary<string, object> obj = new Dictionary<string, object>();
- // 分账明细
- obj.Add("acct_infos", getAcctInfos(info, request));
- // 百分比分账标志
- // obj.Add("percentage_flag", "");
- // 是否净值分账
- // obj.Add("is_clean_split", "");
- return JsonConvert.SerializeObject(obj);
- }
- private static string getRiskCheckData() {
- Dictionary<string, object> obj = new Dictionary<string, object>();
- // 转账原因
- obj.Add("transfer_type", "03");
- // 产品子类
- //obj.Add("sub_product", "1");
- // 纬度
- // obj.Add("latitude", "");
- // 经度
- // obj.Add("longitude", "");
- // 基站地址
- // obj.Add("base_station", "");
- // IP地址
- // obj.Add("ip_addr", "");
- return JsonConvert.SerializeObject(obj);
- }
- private static string getLjhData() {
- Dictionary<string, object> obj = new Dictionary<string, object>();
- // 税源地ID
- // obj.Add("tax_area_id", "");
- // 任务模板ID
- // obj.Add("template_id", "");
- return JsonConvert.SerializeObject(obj);
- }
- }
- }
|