«

C# 编写的京东商城支付成功功能模拟程序

hujiato 发布于 阅读:99 编程


以下是一个使用 C# 编写的京东商城支付成功功能模拟程序。这个程序会提示用户输入支付金额,然后计算优惠金额,随机生成支付方式、交易时间和订单编号,并最终显示完整的支付成功信息。

using System;
using System.Collections.Generic;
using System.Linq;

// 命名空间:京东商城支付模拟程序
namespace JD商城支付模拟
{
    class Program
    {
        // 程序入口点
        static void Main(string[] args)
        {
            // 显示支付页面标题
            Console.WriteLine("===== 京东商城支付 =====");

            // 声明支付金额变量
            decimal amount = 0;

            // 使用循环确保用户输入有效的支付金额
            while (true)
            {
                // 提示用户输入支付金额
                Console.Write("请输入支付金额: ¥");

                // 尝试解析用户输入,如果解析成功且金额大于0,则退出循环
                if (decimal.TryParse(Console.ReadLine(), out amount) && amount > 0)
                {
                    break;
                }

                // 如果输入无效,提示用户重新输入
                Console.WriteLine("输入有误,请重新输入有效的金额!");
            }

            // 调用方法计算优惠金额
            decimal discount = CalculateDiscount(amount);

            // 调用方法获取随机支付方式
            string paymentMethod = GetRandomPaymentMethod();

            // 获取当前系统时间作为交易时间
            DateTime transactionTime = DateTime.Now;

            // 调用方法生成唯一订单编号
            string orderNumber = GenerateOrderNumber();

            // 显示支付成功信息标题
            Console.WriteLine("\n===== 支付成功 =====");
            Console.WriteLine($"京东商城");
            Console.WriteLine($"订单编号: {orderNumber}");
            Console.WriteLine($"交易时间: {transactionTime:yyyy-MM-dd HH:mm:ss}"); // 格式化时间显示
            Console.WriteLine($"支付方式: {paymentMethod}");
            Console.WriteLine($"原始金额: ¥{amount:F2}"); // 使用F2格式化显示两位小数
            Console.WriteLine($"优惠金额: ¥{discount:F2}");
            Console.WriteLine($"实付金额: ¥{amount - discount:F2}");
            Console.WriteLine("\n感谢您的购买,祝您购物愉快!");
        }

        /// <summary>
        /// 计算优惠金额
        /// </summary>
        /// <param name="amount">原始支付金额</param>
        /// <returns>计算后的优惠金额</returns>
        static decimal CalculateDiscount(decimal amount)
        {
            // 简单的优惠规则:
            // 1. 满200元减30元
            // 2. 满100元减10元
            // 3. 不满100元随机立减1-5元
            if (amount >= 200)
            {
                return 30;
            }
            else if (amount >= 100)
            {
                return 10;
            }
            else
            {
                // 使用Guid生成随机数种子,避免多次调用时随机数相同
                Random random = new Random(Guid.NewGuid().GetHashCode());
                return (decimal)random.Next(1, 6); // 生成1-5之间的随机整数
            }
        }

        /// <summary>
        /// 从预设列表中随机选择一种支付方式
        /// </summary>
        /// <returns>随机选择的支付方式</returns>
        static string GetRandomPaymentMethod()
        {
            // 预设的支付方式列表
            List<string> paymentMethods = new List<string>
            {
                "京东白条", "微信支付", "支付宝", "银行卡支付", "京东支付"
            };

            // 生成随机数,用于从列表中随机选择
            Random random = new Random(Guid.NewGuid().GetHashCode());
            return paymentMethods[random.Next(paymentMethods.Count)];
        }

        /// <summary>
        /// 生成符合规则的订单编号
        /// </summary>
        /// <returns>生成的订单编号</returns>
        static string GenerateOrderNumber()
        {
            // 订单编号规则:JD + 年月日(8位) + 6位随机数
            // 例如:JD20231005123456

            // 获取当前日期的年月日部分
            string datePart = DateTime.Now.ToString("yyyyMMdd");

            // 生成6位随机数
            Random random = new Random(Guid.NewGuid().GetHashCode());
            string randomPart = random.Next(100000, 999999).ToString(); // 生成100000-999999之间的随机数

            // 组合生成最终订单编号
            return $"JD{datePart}{randomPart}";
        }
    }
}
    

输出

===== 京东商城支付 =====
请输入支付金额: ¥50

===== 支付成功 =====
京东商城
订单编号: JD20250822646504
交易时间: 2025-08-22 22:26:14
支付方式: 支付宝
原始金额: ¥50.00
优惠金额: ¥5.00
实付金额: ¥45.00

感谢您的购买,祝您购物愉快!

C#

文章目录