package com.fzm.mall.midea.pay.params;

import lombok.Data;
import lombok.experimental.Accessors;

import java.util.Map;

/**
 * @author tangtuo
 * @date 2021/5/24 13:51
 */

@Data
@Accessors(chain = true)
public class WechatPayTradeParam extends BaseParam{

    /**
     * 担保交易标志：
     * TRUE 担保交易
     * FALSE 即时到账交易（默认）
     * 不可为空
     */
    private String is_guarantee;

    /**
     * 美的支付合作商户网站唯一订单号（确保在合作伙伴系统中唯一）
     * 不可为空
     */
    private String out_trade_no;

    /**
     * 商户发起交易，提交订单的时间，格式yyyyMMddHHmmss
     * 不可为空
     */
    private String out_trade_time;

    /**
     * 买家用户类型（自动登录时必填）
     * B：商户
     * C：用户(默认)
     */
    private String payer_type;

    /**
     * 付款方登录名
     */
    private String payer_login_name;

    /**
     * 收款方登录名
     */
    private String payee_login_name;

    /**
     * SCAN_CODE：扫码
     * OFFICIAL_ACCT：公众号/服务窗
     * MINI_PROGRAM：小程序
     * APP：app
     * H5：H5支付
     * 不可为空
     */
    private String bar_code;

    /**
     * 公众号id
     * 注：公众号、app、小程序支付时，必填
     */
    private String app_id;

    /**
     * 用户id
     * 公众号或小程序支付时，必填
     */
    private String open_id;

    /**
     * 货币类型：
     * CNY：人民币
     */
    private String currency_type;

    /**
     * 订单总金额等于支付金额加营销金额，单位分
     * （3.4.0不可空）
     */
    private String order_amount;

    /**
     * 交易的支付金额，单位分
     * 不可为空
     */
    private String pay_amount;

    /**
     * 营销金额，单位分
     */
    private String market_amount;

    /**
     * DC：借记卡
     * DOC：借记卡和信用卡（双卡)
     */
    private String limit_acct_type;

    /**
     * 交易超时时间
     * <p>
     * 单位：分，时间范围：1-30，不传默认为30
     * 接口版本号大于等于3.3.0，表示订单关单时间，小于3.3.0版本无关单功能
     */
    private String pay_expire_time;

    /**
     *
     * 产品标识：
     * TRUE：虚拟交易
     * FALSE：实物交易
     * 不可为空
     */
    private String is_virtual_product;

    /**
     * 商品名称
     * 不可为空
     */
    private String product_name;

    /**
     * 商品的描述
     * 不可为空
     */
    private String product_info;

    /**
     * 商品数量
     */
    private String product_count;

    /**
     * 商品单价，单位分
     */
    private String product_price;

    /**
     * 交易意图
     */
    private String trade_purpose;

    /**
     * 商户自定义的信息，回调通知的时候美的支付平台会原值返回给商户
     */
    private String attach;

    /**
     * 风控参数
     * 不可为空
     */
    private String risk_params;

    /**
     *
     * 分润参数
     */
    private String profit_params;

    /**
     * 多级分账标志
     */
    private String profit_sharing;

    /**
     * 商户网站url（H5支付方式必传）
     */
    private String wap_url;

    /**
     * 商户网站名称（H5支付方式必传）
     */
    private String wap_name;


    public static void main(String[] args) {
        WechatPayTradeParam wechatPayTradeParam = new WechatPayTradeParam();
        wechatPayTradeParam.setApp_id("123").setAttach("attach").setService("wechat_trade");
        Map<String, String> map = wechatPayTradeParam.beanToMap(wechatPayTradeParam);
        System.out.println(map);

    }
}

