示例#1
0
        private string BuildPaymentLink(string invoiceId, string amount, string signature, string receiptEncodedJson,
                                        CustomShpParameters customShpParameters)
        {
            const string host = "https://auth.robokassa.ru/Merchant/Index.aspx?";

            var parameters = new Collection <string>();

            if (_isTestEnv)
            {
                parameters.Add("isTest=1");
            }

            parameters.Add("MrchLogin="******"InvId=" + invoiceId);
            parameters.Add("OutSum=" + amount);

            if (!string.IsNullOrEmpty(receiptEncodedJson))
            {
                parameters.Add("Receipt=" + HttpUtility.UrlEncode(receiptEncodedJson));
            }

            customShpParameters?
            .GetParameters?
            .ForEach(parameter =>
                     parameters.Add($"{parameter.Key}={HttpUtility.UrlEncode(HttpUtility.UrlEncode(parameter.Value))}"));

            parameters.Add("SignatureValue=" + signature);
            parameters.Add("Culture=ru");

            var url = host + string.Join("&", parameters);

            return(url);
        }
示例#2
0
        public PaymentUrl GenerateAuthLink(
            decimal totalAmount,
            int invoiceId,
            RobokassaReceiptRequest receipt,
            CustomShpParameters customShpParameters)
        {
            var receiptEncodedJson = receipt?.ToString();

            var customFieldsLine = customShpParameters?.ToString();

            var amountStr = totalAmount.ToString("0.00", System.Globalization.CultureInfo.InvariantCulture);

            var invoiceIdStr = invoiceId.ToString();

            var signatureValue =
                Md5HashService
                .GenerateMd5Hash(
                    PrepareMd5SumString(amountStr, invoiceIdStr, receiptEncodedJson, customFieldsLine));

            return(new PaymentUrl(BuildPaymentLink(invoiceIdStr, amountStr, signatureValue, receiptEncodedJson,
                                                   customShpParameters)));
        }