Beispiel #1
0
 /// <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);
     }
 }
Beispiel #2
0
        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;
            }
        }
Beispiel #3
0
        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;
            }
        }
Beispiel #4
0
        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));
        }
Beispiel #5
0
        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);
        }