public NvpCodec DirectPayment(OrderViewModel orderViewModel, ref NvpCodec decoder, ref string retMsg) { if (_env == "pilot") { _pendpointurl = "https://pilot-payflowpro.paypal.com"; } var encoder = new NvpCodec(); encoder["TENDER"] = "C"; encoder["TRXTYPE"] = "S"; encoder["ACCT"] = orderViewModel.CreditCardNumber; //encoder["CVV2"] = createOrderViewModel.Cvv2; encoder["EXPDATE"] = orderViewModel.ExpDate; encoder["ACCTTYPE"] = orderViewModel.PaymentOption; encoder["AMT"] = orderViewModel.Amt.ToString("c"); encoder["CURRENCY"] = _currencyCode; encoder["FIRSTNAME"] = orderViewModel.FirstNameCreditCard; encoder["LASTNAME"] = orderViewModel.LastNameCreditCard; encoder["STREET"] = orderViewModel.CcAddress1; encoder["CITY"] = orderViewModel.CcCity; //encoder["STATE"] = createOrderViewModel.CcAddress2.ToUpper(); encoder["ZIP"] = orderViewModel.CcPostalCode; encoder["COUNTRY"] = orderViewModel.CountryCode; // unique request ID Guid uid = Guid.NewGuid(); encoder["INVNUM"] = uid.ToString(); //encoder["ORDERDESC"] = createOrderViewModel.CourseName; encoder["VERBOSITY"] = "MEDIUM"; encoder["Email"] = orderViewModel.Email; //encoder["COMMENT1"] = createOrderViewModel.TransactionDateTimeUtc.ToString("yyyy-MM-dd HH:mm:ss") + "-" + createOrderViewModel.CourseName; //encoder["COMMENT2"] = "elearning-" + createOrderViewModel.Organization; //Roger Code - Do I need to generate a token each time? //var token = Convert.ToBase64String(Guid.NewGuid().ToByteArray()); //encoder["SECURETOKENID"] = token; //encoder["CREATESECURETOKEN"] = "Y"; var pStrrequestforNvp = encoder.Encode(); var pStresponsenvp = HttpCall(pStrrequestforNvp, uid.ToString()); if (String.IsNullOrEmpty(pStresponsenvp)) return null; decoder = new NvpCodec(); decoder.Decode(pStresponsenvp); return decoder; }
/// <summary> /// Credentials added to the NVP string /// </summary> /// <returns></returns> private string BuildCredentialsNvpString() { var codec = new NvpCodec(); if (!IsEmpty(_apiUser)) codec["USER"] = _apiUser; if (!IsEmpty(_apiPassword)) codec[Pwd] = _apiPassword; if (!IsEmpty(_apiVendor)) codec[Vendor] = _apiVendor; if (!IsEmpty(ApiPartner)) codec[Partner] = ApiPartner; return codec.Encode(); }