public String GetParamPost(RequestPaymentToNL info)
        {
            String request = "";
            request += "function=" + info.Funtion;
            request += "&cur_code=" + info.cur_code;
            request += "&version=" + info.Version;
            request += "&merchant_id=" + info.Merchant_id;
            request += "&receiver_email=" + info.Receiver_email;
            request += "&merchant_password="******"&order_code=" + info.Order_code;
            request += "&total_amount=" + info.Total_amount;
            request += "&payment_method=" + info.Payment_method;
            request += "&bank_code=" + info.bank_code;
            request += "&payment_type=" + info.Payment_type;
            request += "&order_description=" + info.order_description;
            request += "&tax_amount=" + info.tax_amount;
            request += "&fee_shipping=" + info.fee_shipping;
            request += "&discount_amount=" + info.Discount_amount;
            request += "&return_url=" + info.return_url;
            request += "&cancel_url=" + info.cancel_url;
            request += "&buyer_fullname=" + info.Buyer_fullname;
            request += "&buyer_email=" + info.Buyer_email;
            request += "&buyer_mobile=" + info.Buyer_mobile;

            return request;
        }
        public ResponseInfo GetUrlCheckout(RequestPaymentToNL requestContent)
        {
            requestContent.Payment_method = requestContent.Payment_method;
            String requestinfo = GetParamPost(requestContent);
            String result = HttpPost(requestinfo, requestContent.APILink);
            result = result.Replace("&", "&");
            XmlDocument dom = new XmlDocument();
            dom.LoadXml(result);
            XmlNodeList root = dom.DocumentElement.ChildNodes;

            ResponseInfo resResult = new ResponseInfo();
            resResult.Checkout_url = root.Item(4).InnerText;
            resResult.Description = root.Item(2).InnerText;
            resResult.Error_code = root.Item(0).InnerText;
            resResult.Token = root.Item(1).InnerText;

            return resResult;
        }
Exemplo n.º 3
0
        public HttpResponseMessage SubmitPaymentToNL(HttpRequestMessage request, SubmitPaymentDTO obj)
        {
            ResultDTO result = new ResultDTO();

            if (obj == null ||
                string.IsNullOrEmpty(obj.OptionPayment)
                //|| string.IsNullOrEmpty(obj.BankCode)
                || (obj.Amount < 0) ||
                string.IsNullOrEmpty(obj.FullName) ||
                string.IsNullOrEmpty(obj.Email) ||
                string.IsNullOrEmpty(obj.Phone) ||
                string.IsNullOrEmpty(obj.SessionKey)
                )
            {
                result.StatusCode = Common.ConvertErrorCodeToInt(RetCode.ECS0034);
                result.SetContentMsg();
                return(request.CreateResponse(HttpStatusCode.OK, result));
            }

            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response;

                result = _service.GetMerchantInfo(obj);

                if (result.StatusCode == Common.ConvertErrorCodeToInt(RetCode.ECS0000))
                {
                    RequestMerchantInfoDTO requestObj = (RequestMerchantInfoDTO)result.Details;
                    RequestPaymentToNL pushData = new RequestPaymentToNL()
                    {
                        APILink = requestObj.ApiLink,
                        Merchant_id = requestObj.merchant_id,
                        Merchant_password = requestObj.merchant_password,
                        Receiver_email = requestObj.receiver_email,
                        Payment_method = obj.OptionPayment,
                        return_url = requestObj.ReturnUrl,
                        cancel_url = requestObj.CancelUrl,
                        Order_code = requestObj.ContractNo,
                        Total_amount = obj.Amount.ToString(),
                        cur_code = "vnd",
                        bank_code = obj.BankCode,
                        fee_shipping = "0",
                        Discount_amount = "0",
                        Buyer_fullname = obj.FullName,
                        Buyer_email = obj.Email,
                        Buyer_mobile = obj.Phone
                    };

                    APICheckoutV31 objNLChecout = new APICheckoutV31();
                    ResponseInfo resResult = objNLChecout.GetUrlCheckout(pushData);
                    CashTrans.CashLog(objNLChecout.GetParamPost(pushData).Replace("&", "&amp;"), resResult.Error_code, resResult.Token, resResult.Description, resResult.Checkout_url, requestObj.ContractNo, obj.SessionKey);

                    if (resResult != null && !string.IsNullOrEmpty(resResult.Error_code))
                    {
                        ResultNLModel rsNL = new ResultNLModel();
                        rsNL.ErrorCode = resResult.Error_code;
                        if (rsNL.ErrorCode == "00")
                        {
                            rsNL.Description = resResult.Checkout_url;
                        }
                        else
                        {
                            rsNL.Description = (resResult.Description == null) ? string.Empty : resResult.Description;
                        }
                        result.Details = rsNL;
                    }
                    response = request.CreateResponse(HttpStatusCode.OK, result);
                }
                else
                {
                    response = request.CreateResponse(HttpStatusCode.OK, result);
                }
                return response;
            }));
        }