Beispiel #1
0
        /// <summary>
        /// 查询订单
        /// </summary>
        /// <param name="requestModel">请求内容</param>
        /// <returns></returns>
        public static QueryResponseModel Query(QueryModel requestModel)
        {
            AlipayTradeQueryRequest queryRequset = new AlipayTradeQueryRequest();

            queryRequset.BizContent = JsonConvert.SerializeObject(requestModel);
            LogUtil.WriteAlipayLog("查询订单请求", "请求参数", queryRequset.BizContent);
            Dictionary <string, string> paramsDict    = (Dictionary <string, string>)queryRequset.GetParameters();
            AlipayTradeQueryResponse    queryResponse = _client.Execute(queryRequset);

            LogUtil.WriteAlipayLog("查询订单响应", "响应参数", queryResponse.Body);
            return(new QueryResponseModel
            {
                msg = queryResponse.Msg,
                code = queryResponse.Code,
                subcode = queryResponse.SubCode,
                submsg = queryResponse.SubMsg,
                trade_no = queryResponse.TradeNo,
                invoice_amount = queryResponse.InvoiceAmount,
                point_amount = queryResponse.PointAmount,
                receipt_amount = queryResponse.ReceiptAmount,
                trade_status = queryResponse.TradeStatus,
                buyer_logon_id = queryResponse.BuyerLogonId,
                buyer_pay_amount = queryResponse.BuyerPayAmount,
                out_trade_no = queryResponse.OutTradeNo,
                buyer_user_id = queryResponse.BuyerUserId,
                total_amount = queryResponse.TotalAmount
            });
        }
        private AlipayTradeQueryResponse LoopQuery(string biz_content)
        {
            AlipayTradeQueryRequest payRequst = new AlipayTradeQueryRequest();

            payRequst.BizContent = biz_content;

            Dictionary <string, string> paramsDict  = (Dictionary <string, string>)payRequst.GetParameters();
            AlipayTradeQueryResponse    payResponse = null;

            for (int i = 1; i <= 6; i++)
            {
                Thread.Sleep(5000);

                payResponse = client.Execute(payRequst);
                if (string.Compare(payResponse.Code, ResultCode.SUCCESS, false) == 0)
                {
                    if (payResponse.TradeStatus == "TRADE_FINISHED" ||
                        payResponse.TradeStatus == "TRADE_SUCCESS" ||
                        payResponse.TradeStatus == "TRADE_CLOSED")
                    {
                        break;
                    }
                }
            }

            StringBuilder sb1 = new StringBuilder();

            sb1.Append("{\"out_trade_no\":\"" + payResponse.OutTradeNo + "\"}");
            biz_content = sb1.ToString();
            Cancel(biz_content);

            return(payResponse);
        }
        private AlipayTradeQueryResponse LoopQuery(string biz_content)
        {
            AlipayTradeQueryRequest payRequst = new AlipayTradeQueryRequest();

            payRequst.BizContent = biz_content;

            Dictionary <string, string> paramsDict  = (Dictionary <string, string>)payRequst.GetParameters();
            AlipayTradeQueryResponse    payResponse = null;

            for (int i = 0; i < retryCount; i++)
            {
                Thread.Sleep(3000);

                payResponse = client.Execute(payRequst);
                if (string.Compare(payResponse.Code, qrcode._2.ResultCode.SUCCESS, false) == 0)
                {
                    if (payResponse.TradeStatus == "TRADE_FINISHED" ||
                        payResponse.TradeStatus == "TRADE_SUCCESS" ||
                        payResponse.TradeStatus == "TRADE_CLOSED")
                    {
                        return(payResponse);
                    }
                }
            }
            return(null);
        }
Beispiel #4
0
        private AlipayTradeQueryResponse Query(string biz_content)
        {
            AlipayTradeQueryRequest payRequst = new AlipayTradeQueryRequest();

            payRequst.BizContent = biz_content;

            Dictionary <string, string> paramsDict  = (Dictionary <string, string>)payRequst.GetParameters();
            AlipayTradeQueryResponse    payResponse = client.Execute(payRequst);

            return(payResponse);
        }
Beispiel #5
0
        public AlipayTradeQueryResponse LoopQuery(string biz_content)
        {
            AlipayTradeQueryRequest queryRequst = new AlipayTradeQueryRequest();

            queryRequst.BizContent = biz_content;
            Dictionary <string, string> paramsDict    = (Dictionary <string, string>)queryRequst.GetParameters();
            AlipayTradeQueryResponse    queryResponse = null;

            for (int i = 1; i <= 6; i++)
            {
                Thread.Sleep(5000);
                queryResponse = m_Client.Execute(queryRequst);
                if (string.Compare(queryResponse.Code, ResultCode.SUCCESS, false) == 0)
                {
                    if (queryResponse.TradeStatus == "TRADE_FINISHED" ||
                        queryResponse.TradeStatus == "TRADE_SUCCESS" ||
                        queryResponse.TradeStatus == "TRADE_CLOSED")
                    {
                        break;
                    }
                }
            }
            return(queryResponse);
        }
Beispiel #6
0
        /// <summary>
        /// 查询订单状态
        /// </summary>
        /// <param name="request"></param>
        /// <param name="sceneryDomain"></param>
        /// <returns></returns>
        public QueryResponse Query(QueryRequest request, SceneryDomain sceneryDomain)
        {
            var result = false;

            //创建淘宝支付信息
            client = new DefaultAopClient(serverUrl, sceneryDomain.Apipay.APP_ID, sceneryDomain.Apipay.APP_PRIVATE_KEY, "", version,
                                          sign_type, sceneryDomain.Apipay.ALIPAY_PUBLIC_KEY, charset);

            QueryResponse queryResponse = new QueryResponse();
            StringBuilder biz_content   = new StringBuilder();

            biz_content.Append("{\"out_trade_no\":\"" + request.Out_trade_no + "\"}");


            AlipayTradeQueryRequest payRequst = new AlipayTradeQueryRequest();

            payRequst.BizContent = biz_content.ToString();

            Dictionary <string, string> paramsDict  = (Dictionary <string, string>)payRequst.GetParameters();
            AlipayTradeQueryResponse    payResponse = null;


            LogHelper.AlipayLog(string.Format("论寻-请求josn:{0}", biz_content));
            payResponse = client.Execute(payRequst);

            LogHelper.AlipayLog(string.Format("论寻-结果:{0}-{1}-{2}", payResponse.Code, payResponse.TradeStatus, payResponse.Body));
            if (string.Compare(payResponse.Code, ResultCode.SUCCESS, false) == 0)
            {
                if (payResponse.TradeStatus == "TRADE_FINISHED" ||
                    payResponse.TradeStatus == "TRADE_SUCCESS" ||
                    payResponse.TradeStatus == "TRADE_CLOSED")
                {
                    if (payResponse.TradeStatus == "TRADE_SUCCESS")
                    {
                        var detailDao = new AlipayDetailDao();
                        var qrCodeDao = new AlipayQRCodeDao();
                        Alipay_trade_query_response alipayDetail = JsonConvert.DeserializeObject <Alipay_trade_query_response>(payResponse.Body);
                        //需要检查数据库中是否有改数据 有的话 直接返回
                        var QRCodeDetail = qrCodeDao.IsExistOut_trade_no(alipayDetail.alipay_trade_query_response.Out_trade_no, alipayDetail.alipay_trade_query_response.Total_amount
                                                                         , sceneryDomain.Apipay.APP_ID);

                        if (result == null || QRCodeDetail.SceneryName == "-1")
                        {
                            LogHelper.AlipayLog("论寻:无通知参数");
                        }
                        //论寻:数据已经存在,不需要插入
                        if (QRCodeDetail.SceneryName != "-2")
                        {
                            //保存支付宝信息
                            string body = payResponse.Body;
                            alipayDetail.alipay_trade_query_response.SceneryName    = sceneryDomain.SceneryName;
                            alipayDetail.alipay_trade_query_response.Creater        = sceneryDomain.Apipay.APP_ID;
                            alipayDetail.alipay_trade_query_response.Updater        = "";
                            alipayDetail.alipay_trade_query_response.AppId          = sceneryDomain.Apipay.APP_ID;
                            alipayDetail.alipay_trade_query_response.BatchNumber    = QRCodeDetail.BatchNumber;
                            alipayDetail.alipay_trade_query_response.SceneryRate    = sceneryDomain.Rate;
                            alipayDetail.alipay_trade_query_response.AlipayPlayDate = Convert.ToDateTime(alipayDetail.alipay_trade_query_response.Send_pay_date.ToString("yyyy-MM-dd"));
                            detailDao.Add(alipayDetail.alipay_trade_query_response);
                        }
                        else
                        {
                            LogHelper.AlipayLog("论寻:数据已经存在,不需要插入");
                        }
                        queryResponse.buyer_logon_id = alipayDetail.alipay_trade_query_response.Buyer_logon_id;
                        queryResponse.gmt_payment    = alipayDetail.alipay_trade_query_response.Send_pay_date;
                        queryResponse.trade_no       = alipayDetail.alipay_trade_query_response.Trade_no;
                        result = true;
                    }
                }
            }

            if (result == false && request.IsLastRequest == 1)
            {
                var content = new StringBuilder();
                content.Append("{\"out_trade_no\":\"" + payResponse.OutTradeNo + "\"}");
                biz_content = content;
                Cancel(content.ToString());
            }
            return(queryResponse);
        }