package io.renren.modules.lianlian.service;

import io.renren.common.vo.trans.LianLianResp;
import io.renren.common.vo.trans.TransferMorepyeeReq;
import io.renren.common.vo.trans.TransferMorepyeeResp;
import io.renren.common.vo.trans.TransferReq;
import io.renren.common.vo.trans.TransferResp;
import io.renren.common.vo.trans.WithDrawalReq;

/**
 * 代发服务
 * https://open.lianlianpay.com/docs/accp/accpstandard/sandbox-account.html
 * @author lsy
 */
public interface TransService {
	
	/**
	 * 内部代发
	 * 用户/平台商户A将账户可用余额代发至用户/平台商户B可用余额账户，收款方可传多个，业务场景为佣金代发、红包奖励代发、供应商货款付款等
	 * @param req
	 * @return
	 * @throws Exception
	 */
	TransferMorepyeeResp transferMorepyee(TransferMorepyeeReq req) throws Exception;
	
	/**
	 * 外部代发
	 * 用户/平台商户A将账户可用余额代发至用户/平台商户B实体银行账户；业务场景为佣金代发、红包奖励代发、供应商货款付款等。
	 * @param req
	 * @return
	 * @throws Exception
	 */
	TransferResp transfer(TransferReq req) throws Exception;

	/**
	 * 提现
	 * 用户或商户将账户可用余额提现到开户时绑定的银行卡中，只能提现到本人卡。
	  * 验证方式：支付密码+短信验证码。短验验证注册绑定手机号。
	 * @param req
	 * @return
	 * @throws Exception
	 */
	LianLianResp withdrawal(WithDrawalReq req) throws Exception;
	
}