应用场景:
利用公众号直接给已经关注V大夫用户转账,比如用户退款申请。
约束:
V大夫平台调用转账接口时必须保证V大夫微信商户账号有足够余额,否则转账失败。
目前平台是每天提醒财务未来两天转账金额,让财务定时充值。
实现步骤:
1、组装转账参数
Transfer tf=new Transfer();
tf.setDesc("用户提现转账");//转账描述
tf.setIprice(iprice);//转账金额,单位分
tf.setOpenid();//收款人openid(用户必须关注V大夫)
tf.setSbussid();//业务ID(调用转账接口可能很多)
tf.setSgroupid();//业务模块ID(调用转账接口可能很多)
tf.setSname();//用户姓名,如果调用接口需要校验用户姓名与openid真实性,则这个字段必须是用户真实姓名,微信会自动校验用户真实性
2、调用转账接口
/**
*
* @param tran 转账参数
* @param event 回调事件
* @param iusertype 公众号分类
* @param checkname 是否校验真实性
* @version 1.0
* @date 2015-12-16 下午4:05:06
*/
TransferThread(Transfer tran,TransferEvent event,Integer iusertype,boolean checkname)
样例代码:
通常不需要关注转账实时结果,以下启用线程做转账。
new Thread(new TransferThread(tf,null,MessageUtil.DOCTOR_USERTYPE,true)).start();
转账成功后回调(可选)
有些业务场景需要关注转账结果,根据转账结果来做相应业务处理,实现步骤
1、写一个业务处理类继承抽象类com.wxpay.bean.TransferEvent
事件名称可读性要强,比如
DrawbackTransferEvent
2、重写event方法
public void event(TransferResult transferresult)throws ServiceException{
if("SUCCESS".equals(transferresult.getResult())) {
//转账成功
//do something
}
}
回调样例
new Thread(new TransferThread(tf,event,MessageUtil.DOCTOR_USERTYPE,true)).start();