/// <summary> /// 扫码消费 /// </summary> /// <param name="balance">消费金额</param> /// <param name="codeQR">微信支付宝支付码</param> /// <returns></returns> private static ServiceResult <POSReturn> SweepConsume(UnionPayInput1 param) { InputData inputdata = new InputData(POSTranslateCode.SWEEPCONSUME); inputdata.amount = Math.Round(param.Number * 100m).ToString(); inputdata.szQRCode = param.Str1; //POS机微信/支付宝扫码支付使用支付方式作为银行名称代码,方便界面显示 var retSweepConsume = BankTrans(inputdata); if (retSweepConsume.Success && retSweepConsume.Value.amount / 100m != param.Number) { return(new ServiceResult <POSReturn>(false, InnerError , string.Format("POS机缴费金额与应扣金额不一致!{0}应为{1}现为{2}" , Environment.NewLine, param.Number, retSweepConsume.Value.amount / 100m))); } if (retSweepConsume.Success) { if (listWeChatCode.Contains(param.Str1.Substring(0, 2))) { retSweepConsume.Value.dtPayMode = Constant.PayWays.WeChat; } else { if (listAliCode.Contains(param.Str1.Substring(0, 2))) { retSweepConsume.Value.dtPayMode = Constant.PayWays.Ali; } } } return(retSweepConsume); }
/// <summary> /// 撤销交易 /// </summary> /// <param name="balance">金额</param> /// <param name="translateSerialCode">原交易流水号</param> /// <returns></returns> private static ServiceResult <POSReturn> CancelConsume(UnionPayInput1 param) { InputData inputdata = new InputData(POSTranslateCode.CANCELCONSUME); inputdata.amount = Math.Round(param.Number * 100m).ToString(); inputdata.old_trace = param.Str1; var ret = BankTrans(inputdata); return(ret); }
/// <summary> /// 扫码退货 /// </summary> /// <param name="balance">退货金额</param> /// <param name="translateCode">订单号</param> /// <returns></returns> private static ServiceResult <POSReturn> SweepRefund(UnionPayInput1 param) { InputData inputdata = new InputData(POSTranslateCode.SWEEPREFUND); inputdata.amount = Math.Round(param.Number * 100m).ToString(); inputdata.szQRCode = param.Str1; var ret = BankTrans(inputdata); if (ret.Success && ret.Value.amount / 100m != param.Number) { ret = new ServiceResult <POSReturn>(false, InnerError, string.Format("POS机退费金额与应退金额不一致!{0}应为{1}元,现为{2}元", Environment.NewLine, param.Number, ret.Value.amount / 100m)); } return(ret); }