package com.yc.abc.utils; import com.abc.pay.client.Constants; import com.abc.pay.client.JSON; import com.abc.pay.client.ebus.AlipayRequest; import com.abc.pay.client.ebus.PaymentRequest; import com.abc.pay.client.ebus.QRPayCode; import com.abc.pay.client.ebus.UnifiedPaymentRequest; import com.yc.abc.entity.MerchantEntity; import com.yc.abc.entity.OrderEntity; import com.yc.entity.DataSourceEntity; import com.yc.exception.ApplicationException; import com.yc.factory.FactoryBean; import com.yc.multiData.MultiDataSource; import com.yc.multiData.SpObserver; import com.yc.open.mutual.controller.MutualController; import com.yc.sdk.weixinmp.util.MD5Util; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.formula.functions.FactDouble; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.Base64; import java.util.LinkedHashMap; /** * 农行支付接口 */ public class AbcPayUtils { /** * 01:未支付 * 02:无回应 * 03:微信和支付宝支付成功 * 04:选择微信、支付宝支付时,表示农行清算成功; * 选择我行支付通道支付时,表示农行支付成功 * 05:已退款 * 07:授权确认成功 * 00:授权已取消 * 99:失败 */ public static String getOrderStatus(String status,String payType) { String result=""; switch (status) { case "01": result= "未支付"; break; case "02": result= "无回应"; break; case "03": case "04": result= "支付成功"; break; case "05": result= "已退款"; break; case "07": result= "授权确认成功"; break; case "00": result= "授权已取消"; break; default: result= "支付失败"; } String payTypeId=""; if("ALI_PAY".equalsIgnoreCase(payType)){ payTypeId="支付宝"; }else if("weixinpay".equalsIgnoreCase(payType)){ payTypeId="微信"; }else{ payTypeId="掌银"; } return payTypeId+result; } /** * 根据数据源id匹配TrustMerchant.properties所定义的多商户信息(商户号,商户证书储存目录,商户私钥加密密码) * 由配置文件定义决定,从1开始 * MerchantID=103100070113810,123456789012345,103456464564564 * MerchantCertFile =C:\cert\3810.pfx,C:\cert\2345.pfx,C:\cert\4564.pfx * MerchantCertPassword =11111111,22222222,12345678 * //TODO 开通客户需要在这里设置好对应关系,因为1已经是卤江南使用,所以从2开始指定 * @return */ public static MerchantEntity getMerchantInfo(int dbid,int formid,String userCode,String docCode){ //商户证书列表 String merchantStr =AbcMerchantConfig.get("MerchantCertFile"); if(StringUtils.isBlank(merchantStr)){ throw new ApplicationException("商户证书列表不能为空"); } final String[] merchantList = merchantStr.split(","); int index=0;//证书的位置 for(int i=0;i