/// <summary> /// 统一收单交易关闭接口 /// 用于交易创建后,用户在一定时间内未进行支付,可调用该接口直接将未付款的交易进行关闭。 /// </summary> /// <param name="out_trade_no"></param> /// <param name="trade_no"></param> /// <param name="operator_id"></param> /// <returns></returns> public static bool CloseOrder(string companyId, string out_trade_no, string trade_no, string operator_id = "") { try { AlipayTradeCloseRequest request = new AlipayTradeCloseRequest(); request.BizContent = "{" + "\"trade_no\":\"" + trade_no + "\"," + "\"out_trade_no\":\"" + out_trade_no + "\"," + "\"operator_id\":\"" + operator_id + "\"" + "}"; AlipayTradeCloseResponse response = GetDefaultAopClient(companyId).Execute(request); if (response.IsError) { TxtLogServices.WriteTxtLogEx("AliPayApiServices", string.Format("统一收单交易关闭接口失败:{0}", response.Body)); throw new MyException("关闭订单失败"); } TxtLogServices.WriteTxtLogEx("AliPayApiServices", string.Format("统一收单交易关闭接口结果:{0}", response.Body)); return(response.Code == "10000"); } catch (Exception ex) { TxtLogServices.WriteTxtLogEx("AliPayApiServices", string.Format("统一收单交易关闭接口失败:{0}", ex.Message)); return(false); } }
protected void BtnAlipay_Click(object sender, EventArgs e) { DefaultAopClient client = new DefaultAopClient(config.gatewayUrl, config.app_id, config.private_key, "json", "1.0", config.sign_type, config.alipay_public_key, config.charset, false); // 商户订单号,和交易号不能同时为空 string out_trade_no = WIDout_trade_no.Text.Trim(); // 支付宝交易号,和商户订单号不能同时为空 string trade_no = WIDtrade_no.Text.Trim(); AlipayTradeCloseModel model = new AlipayTradeCloseModel(); model.OutTradeNo = out_trade_no; model.TradeNo = trade_no; AlipayTradeCloseRequest request = new AlipayTradeCloseRequest(); request.SetBizModel(model); AlipayTradeCloseResponse response = null; try { response = client.Execute(request); WIDresule.Text = response.Body; } catch (Exception exp) { throw exp; } }
public JsonResult OrderCloseInfo(string tradeno, string alipayTradeNo) { DefaultAopClient client = new DefaultAopClient(Config.gatewayUrl, Config.app_id, Config.private_key, "json", "1.0", Config.sign_type, Config.alipay_public_key, Config.charset, false); AlipayTradeCloseModel model = new AlipayTradeCloseModel(); // 商户订单号,和交易号不能同时为空 model.OutTradeNo = tradeno; // 支付宝交易号,和商户订单号不能同时为空 model.TradeNo = alipayTradeNo; AlipayTradeCloseRequest request = new AlipayTradeCloseRequest(); request.SetBizModel(model); AlipayTradeCloseResponse response = null; try { response = client.Execute(request); return(Json(response.Body)); } catch (Exception exp) { throw exp; } }
public IActionResult Close(string WIDout_trade_no, string WIDtrade_no) { DefaultAopClient client = new DefaultAopClient(_settings.Value.gateway_url, _settings.Value.app_id, _settings.Value.private_key, _settings.Value.format, _settings.Value.version, _settings.Value.sign_type, _settings.Value.alipay_public_key, _settings.Value.charset, false); // 商户订单号,和交易号不能同时为空 string out_trade_no = WIDout_trade_no; // 支付宝交易号,和商户订单号不能同时为空 string trade_no = WIDtrade_no; AlipayTradeCloseModel model = new AlipayTradeCloseModel(); model.OutTradeNo = out_trade_no; model.TradeNo = trade_no; AlipayTradeCloseRequest request = new AlipayTradeCloseRequest(); request.SetBizModel(model); AlipayTradeCloseResponse response = null; try { response = client.Execute(request); } catch (Exception exp) { throw exp; } return(Content(response.Body)); }
public AlipayTradeCloseResponse CleanWaitOrder(EAliPayApplication app, EOrderInfo order, EStoreInfo store = null) { IAopClient aliyapClient = new DefaultAopClient("https://openapi.alipay.com/gateway.do", app.AppId, app.Merchant_Private_Key, "json", "1.0", "RSA2", app.Merchant_Public_key, "GBK", false); AlipayTradeCloseRequest request = new AlipayTradeCloseRequest(); AlipayTradeCloseModel model = new AlipayTradeCloseModel(); model.OutTradeNo = order.OrderNo; request.SetBizModel(model); AlipayTradeCloseResponse response = null; if (store != null) { response = aliyapClient.Execute(request, null, store.AliPayAuthToke); } else { response = aliyapClient.Execute(request); } return(response); }
public void TestClose() { AlipayTradeCloseResponse response = Factory.Payment.Common().Close(CreateNewAndReturnOutTradeNo()); Assert.AreEqual(response.Code, "10000"); Assert.AreEqual(response.Msg, "Success"); Assert.Null(response.SubCode); Assert.Null(response.SubMsg); Assert.NotNull(response.HttpBody); }