Exemple #1
0
        public NewebPayCreditCardCloseResponse DoCreditCardClose(NewebpayCreditCardClosePostDataInfo postData)
        {
            var request = ProcessCreditCardClosePostData(postData);
            NewebPayCreditCardCloseResponse result      = null;
            FormUrlEncodedContent           formContent = new FormUrlEncodedContent(new[] {
                new KeyValuePair <string, string>(nameof(request.MerchantID_), request.MerchantID_),
                new KeyValuePair <string, string>(nameof(request.PostData_), request.PostData_)
            });

            string responseBody = HttpService.PostForm(_configService.NewebpayCreditCardApi, formContent);

            if (!string.IsNullOrWhiteSpace(responseBody))
            {
                var response = JsonConvert.DeserializeObject <NewebPayCreditCardCloseResponse>(responseBody);

                if (response.Status != null && string.Equals(response.Status, "SUCCESS"))
                {
                    result = response;
                }
                else
                {
                    throw new Exception($"請款或退款失敗, response: {JsonConvert.SerializeObject(response)}");
                }
            }

            return(result);
        }
Exemple #2
0
        private NewebpayBasicRequest ProcessCreditCardClosePostData(NewebpayCreditCardClosePostDataInfo postData)
        {
            var request = new NewebpayBasicRequest()
            {
                MerchantID_ = _configService.MerchantId,
                PostData_   = HashService.EncryptAESHex(postData.GetDataString(), _configService.HashKey, _configService.HashIv)
            };

            return(request);
        }
Exemple #3
0
        /// <summary>
        /// 進行信用卡請退款
        /// </summary>
        /// <param name="tradeNo"></param>
        /// <param name="amt"></param>
        /// <param name="closeType">請款=1, 退款=2</param>
        /// <returns></returns>
        public NewebPayCreditCardCloseResponse CreditCardCloseByTradeNo(string tradeNo, int amt, int closeType)
        {
            var postData = new NewebpayCreditCardClosePostDataInfo()
            {
                TradeNo         = tradeNo,
                Version         = _configService.CreditCardCloseVersion,
                Amt             = amt,
                CloseType       = closeType,
                IndexType       = 2,
                RespondType     = "JSON",
                TimeStamp       = UnixDateTimeService.GetUNIX(DateTime.Now).ToString(),
                MerchantOrderNo = ""
            };

            return(DoCreditCardClose(postData));
        }