package com.ym.mec.biz.service;


import com.ym.mec.biz.dal.entity.CooperationOrgan;
import com.ym.mec.biz.dal.entity.MusicGroup;
import com.ym.mec.biz.dal.entity.SysAccount;
import com.ym.mec.biz.dal.enums.PaymentChannelTypeEnum;
import com.ym.mec.thirdparty.adapay.Pay;
import com.ym.mec.thirdparty.yqpay.Msg;
import com.ym.mec.thirdparty.yqpay.YqPayUtil;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

/**
 * 支付服务类
 */

public interface PayService {


    /**
     * 返回订单提交数据
     *
     * @param amount       金额
     * @param orderNo      订单编号
     * @param notifyUrl    异步通知地址
     * @param returnUrl    支付返回地址
     * @param orderSubject 订单标题
     * @param orderBody    订单内容
     * @return
     * @throws Exception
     */
    Map<String, Object> getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody, Integer userId) throws Exception;


    /**
     *
     * @param amount BigDecimal 支付金额
     * @param orderNo String 订单号
     * @param notifyUrl String 异步通知地址
     * @param returnUrl string 支付返回地址
     * @param orderSubject String 订单标题
     * @param orderBody String 订单内容
     * @param userId int 用户id
     * @param fee 各种费用
     * @param organId 机构id
     * @return
     * @throws Exception
     */
    Map<String, Object> getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody, Integer userId,Map<String,BigDecimal> fee,Integer organId) throws Exception;

    /**
     *
     * @param amount BigDecimal 支付金额
     * @param orderNo String 订单号
     * @param notifyUrl String 异步通知地址
     * @param returnUrl string 支付返回地址
     * @param orderSubject String 订单标题
     * @param orderBody String 订单内容
     * @param userId int 用户id
     * @param fee Map 各种费用
     * @param organId int 机构id
     * @return
     * @throws Exception
     */
    Map<String, Object> getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody, Integer userId,Map<String,BigDecimal> fee,Integer organId,String receiver) throws Exception;

    Map query(String orderNo) throws Exception;

}
