public static string MakeAliPayOrder(string companyId, AlipayTradeOrderModel model) { try { AliPayApiConfig config = AliPayApiConfigServices.QueryAliPayConfig(companyId); if (config == null) { throw new MyException("获取支付宝配置失败"); } string aliPayNotifyUrl = string.Format("{0}/AliPayNotify", config.SystemDomain); AlipayTradeCreateRequest request = new AlipayTradeCreateRequest(); request.BizContent = JsonHelper.GetJsonString(model); request.SetNotifyUrl(aliPayNotifyUrl); AlipayTradeCreateResponse response = GetDefaultAopClient(companyId).Execute(request); if (response.IsError) { TxtLogServices.WriteTxtLogEx("AliPayApiServices", string.Format("统一下单失败1:{0}", response.Body)); return(""); } return(response.TradeNo); } catch (Exception ex) { TxtLogServices.WriteTxtLogEx("AliPayApiServices", string.Format("统一下单失败2:{0}", ex.Message)); } return(""); }
/// <summary> /// 构造支付请求数据 /// </summary> /// <returns>请求数据集</returns> private static AlipayTradePayContentBuilder BuildPayContent(AlipayTradeOrderModel model) { //线上联调时,请输入真实的外部订单号。 string out_trade_no = model.out_trade_no; //扫码枪扫描到的用户手机钱包中的付款条码 AlipayTradePayContentBuilder builder = new AlipayTradePayContentBuilder(); //收款账号 builder.seller_id = model.seller_id; //订单编号 builder.out_trade_no = out_trade_no; //支付场景,无需修改 builder.scene = "bar_code"; //支付授权码,付款码 builder.auth_code = model.buyer_id; //订单总金额 builder.total_amount = model.total_amount; //参与优惠计算的金额 builder.discountable_amount = model.discountable_amount; //不参与优惠计算的金额 builder.undiscountable_amount = model.undiscountable_amount; //订单名称 builder.subject = model.subject; //自定义超时时间 builder.timeout_express = "10m"; //订单描述 builder.body = model.body; //门店编号,很重要的参数,可以用作之后的营销 builder.store_id = model.store_id; //操作员编号,很重要的参数,可以用作之后的营销 builder.operator_id = "HAND"; //传入商品信息详情 List <GoodsInfo> gList = new List <GoodsInfo>(); GoodsInfo goods = new GoodsInfo(); goods.goods_id = ""; goods.goods_name = model.body; goods.price = model.total_amount; goods.quantity = "1"; gList.Add(goods); builder.goods_detail = gList; //系统商接入可以填此参数用作返佣 //ExtendParams exParam = new ExtendParams(); //exParam.sysServiceProviderId = "20880000000000"; //builder.extendParams = exParam; return(builder); }
public static bool Run(OnlineOrder order, out string sDataInfo) { sDataInfo = ""; string parkid = order.PKID; AlipayTradeOrderModel model = new AlipayTradeOrderModel(); model.out_trade_no = order.OrderID.ToString(); model.total_amount = order.Amount.ToString("F2"); model.discountable_amount = ""; model.undiscountable_amount = ""; model.seller_id = order.PayeeAccount; model.buyer_logon_id = ""; model.subject = order.PKName + "," + order.PlateNo + "," + order.EntranceTime.ToString("yyyy-MM-dd HH:mm:ss"); model.buyer_id = order.PayAccount; model.store_id = parkid; model.body = string.Format("临停缴费-{0}-{1}", order.PKName, order.PlateNo); TxtLogServices.WriteTxtLogEx("AliPayApiServices", JsonHelper.GetJsonString(model)); string tradeNo = AliPayApiServices.BarCodePayOrder(order.CompanyID, model); if (string.IsNullOrWhiteSpace(tradeNo)) { return(false); } if (tradeNo.Length > 2) { sDataInfo = tradeNo; return(true); } int queryTimes = 10;//查询次数计数器 while (queryTimes-- > 0) { bool isSuc = Query(order.CompanyID, order.OrderID.ToString()); if (isSuc) { sDataInfo = tradeNo; return(true); } } return(false); }
public static string BarCodePayOrder(string companyId, AlipayTradeOrderModel model) { try { AliPayApiConfig config = AliPayApiConfigServices.QueryAliPayConfig(companyId); if (config == null) { throw new MyException("获取支付宝配置失败"); } IAlipayTradeService serviceClient = GetDefaultF2FClient(companyId); AlipayTradePayContentBuilder builder = BuildPayContent(model); string out_trade_no = builder.out_trade_no; AlipayF2FPayResult payResult = serviceClient.tradePay(builder); TxtLogServices.WriteTxtLogEx("AliPayApiServices", string.Format("F2F支付:{0}\r\nResult:{1}", builder.ToXml(Encoding.GetEncoding("GB2312")), payResult.response.Body)); switch (payResult.Status) { case ResultEnum.SUCCESS: return(payResult.response.TradeNo); case ResultEnum.FAILED: return(""); case ResultEnum.UNKNOWN: return("-1"); } } catch (Exception ex) { TxtLogServices.WriteTxtLogEx("AliPayApiServices", string.Format("统一下单失败2:{0}", ex.Message)); } return("-2"); }
private string MakeAlipayTradeOrder(OnlineOrder order) { string parkid = string.Empty; AlipayTradeOrderModel model = new AlipayTradeOrderModel(); model.out_trade_no = order.OrderID.ToString(); model.total_amount = order.Amount.ToString("F2"); model.discountable_amount = ""; model.undiscountable_amount = ""; model.seller_id = order.PayeeAccount; model.buyer_logon_id = ""; model.subject = order.PKName + "," + order.PlateNo + "," + order.EntranceTime.ToString("yyyy-MM-dd HH:mm:ss"); model.buyer_id = order.PayAccount; model.store_id = parkid; model.body = string.Format("临停缴费-{0}-{1}", order.PKName, order.PlateNo); TxtLogServices.WriteTxtLogEx("AliPayApiServices", JsonHelper.GetJsonString(model)); string tradeNo = AliPayApiServices.MakeAliPayOrder(order.CompanyID, model); if (string.IsNullOrWhiteSpace(tradeNo)) { throw new MyException("创建交易订单失败"); } return(tradeNo); }