package com.ruoyi.common.pay;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * @author wjh
 * 2024/5/15
 */
public interface Payable {

    /**
     * 获取价格（分）
     */
    BigDecimal payableFen();

    /**
     * 获取价格（元）
     */
    default BigDecimal payableYuan() {
        return payableFen().divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP);
    }

    /**
     * 获取描述
     */
    String payableDescription();

    /**
     * 获取附加信息
     */
    String payableAttach();

    /**
     * 获取外部订单号
     */
    String payableOutTradeNo();

    /**
     * 获取支付账号（OpenId等）
     */
    String payableAccount();

    /**
     * 获取支付者IP
     */
    String payableIp();
}
