コード例 #1
0
        public async Task <CardChargeResponseViewModel> Charge(ChargeInfoViewModel param)
        {
            try
            {
                string urlWS = "http://api.napthengay.com/v2/";

                var transId = GenerateTransId();
                //Dia chi mail dang ky tai khoan tren napthengay.com
                var    plaintText = string.Format("{0}{1}{2}{3}{4}{5}{6}{7}{8}", merchantId, apiMail, transId, param.CardId, param.CardValue, param.PinField, param.SeriField, "md5", secretkey);
                string key        = GetMD5Hash(plaintText);

                var respone = string.Empty;
                using (WebClient client = new WebClient())
                {
                    string url = string.Format("{0}?merchan_id={1}&card_id={2}&seri_field={3}&pin_field={4}&trans_id={5}&data_sign={6}&algo_mode=md5&api_email={7}&card_value={8}", urlWS, merchantId, param.CardId, param.SeriField, param.PinField, transId, key, apiMail, param.CardValue);
                    respone = await client.DownloadStringTaskAsync(url);
                }

                var result = JsonConvert.DeserializeObject <CardChargeResponseViewModel>(respone);
                StoreTransaction(param, result);
                // remove transId before respone FE
                result.trans_id = string.Empty;
                return(result);
            }
            catch (Exception ex)
            {
                _logger.LogException(LogLevel.Error, DateTime.Now.ToString(), ex);
                return(new CardChargeResponseViewModel());
            }
        }
コード例 #2
0
        private void StoreTransaction(ChargeInfoViewModel param, CardChargeResponseViewModel respone)
        {
            var transaction = new Transaction(respone.code, respone.amount, param.CardId, param.CardValue, param.PinField, param.SeriField, respone.trans_id, respone.msg);

            _transaction.InsertOne(transaction);
        }
コード例 #3
0
 public async Task <CardChargeResponseViewModel> ChargeAsync([FromBody] ChargeInfoViewModel param)
 {
     return(await _cardChargeService.Charge(param));
 }