示例#1
0
    public InquriyTransferResponse DuitkuInquiryTransactionStatusRequest(InquiryTransferRequest inquiryRequest)
    {
        InquriyTransferResponse result = new InquriyTransferResponse();

        try
        {
            string data = JsonConvert.SerializeObject(inquiryRequest);

            string response = request("https://passport.duitku.com/webapi/api/merchant/transactionStatus", data);

            if (String.IsNullOrEmpty(response))
            {
                return(result);
            }
            else
            {
                result = JsonConvert.DeserializeObject <InquriyTransferResponse>(response);
            }
        }
        catch (Exception ex)
        {
            Log.WriteErrorLog("HttpHelper::DuitkuInquiryTransactionStatusRequest", ex.Message);
        }
        return(result);
    }
    private void threadProc()
    {
        while (!_isbreak)
        {
            SortedList <string, string> list = BusinessDao.GetNeedCheckDebitRecords();
            Log.WriteDebugLog("StatusCheckThread::threadProc", "存在{0}个需要确认的订单。", list.Count);
            foreach (string orderId in list.Keys)
            {
                string target = list[orderId];
                Log.WriteDebugLog("StatusCheckThread::threadProc", "{0} 准备开始确认订单的状态,渠道{1}。", orderId, target);
                LoanBank bank         = new LoanBank();
                string   merchantCode = String.Empty;

                InquriyTransferResponse response = bank.DuitkuOrderStatusInquiryRequest(orderId, target);
                if (response.statusCode == "00")
                {
                    CallbackRequestModel callback = new CallbackRequestModel();
                    callback.amount          = response.amount;
                    callback.merchantOrderId = response.merchantOrderId;

                    DataProviderResultModel resultModel = DuitkuProvider.SetDuitkuPaybackRecordStaus(callback);
                    if (resultModel.result == Result.SUCCESS)
                    {
                        Log.WriteDebugLog("StatusCheckThread::threadProc", "[{0}]重做成功了。", orderId);
                    }
                    else
                    {
                        Log.WriteDebugLog("StatusCheckThread::threadProc", "[{0}]接口调用成功,但是数据库操作失败了。", orderId);
                    }
                }
                else
                {
                    Log.WriteDebugLog("StatusCheckThread::threadProc", "[{0}]重做失败了。", orderId);
                }

                ///重做次数+1
                BusinessDao.UpdateRedoUserPayBackRecordStatus(orderId);
            }
            Thread.Sleep(10 * 60 * 1000);
        }
    }