V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
perr123
V2EX  ›  数据库

双币种计费,数据库怎么设计

  •  
  •   perr123 · 8 天前 · 3551 次点击

    想同时支持 CNY 和 USD,用户支付后就面临同时存在两种货币,计费扣款时对从哪种货币扣款拿不准

    30 条回复    2024-11-13 23:10:05 +08:00
    javalaw2010
        1
    javalaw2010  
       8 天前   ❤️ 10
    设置一个基准货币,付款的时候根据付款货币实时计算汇率,这个基准货币甚至可以不是 CNY 或者 USD ,而是你自己的积分/金币这种。
    GTim
        2
    GTim  
       8 天前
    基准用 USD
    GTim
        3
    GTim  
       8 天前
    错了,要加一个条件:哪个币种在产品/数据库表里出现的多,就用哪个币种
    perr123
        4
    perr123  
    OP
       8 天前
    @javalaw2010 从用户划过来的钱分别存到了 CNY 账户和 USD 账户, 等公司这边进行相互兑换时,汇率已经变了,用实时汇率有意义吗, 从用户 UI 角度, 用户看到的每月扣费分别是以 CNY(国内)和 USD(国外)计价的
    Unicornvic
        5
    Unicornvic  
       8 天前
    增加汇率表,记录每一天/月的汇率
    历史账单记录基准货币,计费货币和出账汇率
    ninggc
        6
    ninggc  
       8 天前
    怎么扣款应该让用户选择吧,两种货币就是两套
    thoo61871
        7
    thoo61871  
       8 天前
    参考 wise
    花软妹币就扣软妹币
    花刀乐就扣刀乐
    花软妹币时不够钱就扣刀乐按实时汇率+手续费
    用户自己选扣分币种也是按实时汇率+手续费
    specita
        8
    specita  
       8 天前
    这种需要设计多币种和汇率才能搞定,比如交易币、本位币之类的,然后涉及交易的汇率,日汇率和汇率损益之类的,财务上最后才能平账。
    MoYi123
        9
    MoYi123  
       8 天前
    就搞 2 套收费方案吧, 就像 steam, 国区就是 rmb, 转成港区就是 hkd. 用支付宝会在付 hkd 的时候按照汇率转成 rmb 的账单的.
    sumarker
        10
    sumarker  
       8 天前
    定时锁定汇率,然后扣费呗
    如果不行就扣费时使用对应的币种扣,然后等银行兑汇
    其实 就算是只有一个币种,实际价格也是在实时变的,感觉没必要纠结这个
    karnaugh
        11
    karnaugh  
       8 天前
    @perr123 问题就在这了,互相兑换的时候汇率变了,那你们公司承担汇率的导致的损失么。。。
    perr123
        12
    perr123  
    OP
       8 天前
    @karnaugh 原则上是分区的,国外一套服务器和数据库,国内另一套服务器和数据库, 公司这边应该不会经常进行兑换,就让 CNY 在国内账户呆着,让 USD 在国外账户呆着. 但服务器上的程序要照顾到两种币种, 不然就要搞分支了
    pkoukk
        13
    pkoukk  
       8 天前
    @javalaw2010 根本不现实,不同机构给的汇率价格是不一样的,这么玩汇率要亏死
    javalaw2010
        14
    javalaw2010  
       8 天前
    @perr123 用不用实时汇率看你的场景,你也可以使用固定汇率,汇率偏向用户或者偏向自己都可以,只要不显著增加你们的运营成本并且用户可以接受。
    pkoukk
        15
    pkoukk  
       8 天前
    和 stream 一样,账户在国区钱包就是人民币,也只能买人民币定价的 SKU
    币种是个第一优先级属性,因为东西你不可能国外国内卖一个价,全靠汇率动态转
    不同区的运营成本都不一样,价格不可能一样。
    国内你不用考虑信用卡盗刷,国外你就得考虑,还有信用卡手续费,那国外定价本来就要高
    NoDataNoBB
        16
    NoDataNoBB  
       8 天前
    currency_type ,amount ,currency_rmb
    julyclyde
        17
    julyclyde  
       8 天前
    接受多币种的企业不太多吧
    一般都是各货币地区分别成立独立的法人,然后联合营销,各自运营
    dongfangmu
        18
    dongfangmu  
       8 天前 via iPhone
    whmcs ?
    darkengine
        19
    darkengine  
       8 天前
    国外一套服务器和数据库,国内另一套服务器和数据库
    -------
    按照这个描述,同一个数据库里不会同时存在 CNY 和 USD 的订单。只要不同的区,分别存放按照 CNY 定价和按照 USD 定价的 SKU 就可以了。代码/程序完全不用管你的货币是什么。
    git00ll
        20
    git00ll  
       8 天前
    确定好定价币种、支付币种。
    比如一件商品定价 500CNY ,当支付币种与定价币种一致时收银 500CNY 。
    当不一致时计费计算得到收银 xxxUSD 。
    这里就要再引入一个“报价系统”用于根据用户级别确定不同汇率
    bzj
        21
    bzj  
       8 天前
    3 列,货币单位、实际金额、等值金额(建议以美元为基准)
    hex2en
        22
    hex2en  
       8 天前
    @perr123 #12 搞两个账簿,CNY 账簿和 USD 账簿,可以满足需求吗?
    8355
        23
    8355  
       8 天前   ❤️ 1
    这个跟支付扣款有关,支付 cny 就扣 cny 支付 usd 就扣 usd 系统里设计一个货币作为唯一货币衡量,通常按照支付比例高的那个为准,退款的时候也是按照当时支付的货币退,平台承担货币转换费或者汇率波动,这样能帐才能做平。
    每个结算周期计算汇率盈余和亏损在结算系统平账。
    系统在每天更新一次汇率比例保持最小结算周期的汇率稳定
    zzmark06
        24
    zzmark06  
       8 天前
    先考虑好是计费还是付费,这两个方向的账期、汇率参照点,基准值思考方向不同


    计费一般来说和自身成本挂钩,是折算到某个币种上产生固定币种的账单。
    预付费和后付费,账期和扣款时间点不同,一般是设计成支持负数的、带币种的钱包,
    预付费是充值,后付费是先扣款到负数再充值。
    结算时,该扣哪个那是业务考量

    汇率按充值时间点计算,这样把汇率复杂度限定在系统边界

    至于使用哪个币种,一般是按公司结算账户,或者按成本货币
    shiny
        25
    shiny  
       8 天前
    当然是根据结算情况来设计。结算只有一个币种,就按换汇设计;结算时候有多币种就按多币种结。到时候提现也是提结算的币种。
    iamshang
        26
    iamshang  
       8 天前 via Android
    实时汇率必要性有多大?每个币种固定定价不行么,用 usd 贵点也无所谓😂
    sketcherly
        27
    sketcherly  
       8 天前
    我觉得楼上说的对啊,两个币种分开定价啊,不然其他币种的定价要根据实时汇率计算,一直变用户也接收不了吧,还有就是汇率数据哪里来以及各家汇率数据不一样以及用户看见的时候和支付的时候汇率不一样怎么处理
    Hellokids
        28
    Hellokids  
       7 天前
    跨境电商从业者,数据库要存支付币种,用户选择用什么支付就存啥,对应的收款账户也是两个。至于说内部的多货币转换比如商家结款也是到了结算周期再按结汇时间做汇率核算的。
    Hellokids
        29
    Hellokids  
       7 天前
    总结就是:付款记录需要记录币种。
    perr123
        30
    perr123  
    OP
       7 天前 via Android
    @hex2en 是分开记账的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5308 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 08:39 · PVG 16:39 · LAX 00:39 · JFK 03:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.