⽀付宝APP⽀付——⽀付流程说明及⽰例
⽀付宝APP⽀付——⽀付流程说明及⽰例
官⽅⽰例图
蚂蚁⾦服开放平台⽂档:
官⽅流程图:
如图,以Android平台为例:
第4步:调⽤⽀付接⼝:此消息就是本接⼝所描述的⽀付宝客户端SDK提供的⽀付对象PayTask,将商户签名后的订单信息传进payv2⽅法唤起⽀付宝收银台,交第5步:⽀付请求:⽀付宝客户端SDK将会按照商户客户端提供的请求参数发送⽀付请求。
第8步:接⼝返回⽀付结果:商户客户端在第4步中调⽤的⽀付接⼝,会返回最终的⽀付结果(即同步通知),参见客户端同步返回。
第13步:⽤户在⽀付宝APP或H5收银台完成⽀付后,会根据商户在⼿机⽹站⽀付API中传⼊的前台回跳地址return_url⾃动跳转回商户页⾯,同时在URL请求中附
除了正向⽀付流程外,⽀付宝也提供交易查询、关闭、退款、退款查询以及对账等配套API。
特别注意:
构造交易数据并签名必须在商户服务端完成,商户的应⽤私钥绝对不能保存在商户APP客户端中,也不能从服务端下发。
同步返回的数据,只是⼀个简单的结果通知,商户确定该笔交易付款是否成功需要依赖服务端收到⽀付宝异步通知的结果进⾏判断。
商户系统接收到通知以后,必须通过验签(验证通知中的sign参数)来确保⽀付通知是由⽀付宝发送的。建议使⽤⽀付宝提供的SDK来完成,详细验签规则参个⼈实际应⽤后的理解及实现
1. ⽣成订单信息
2. app调⽤⽀付宝⽀付接⼝,服务端会返回⽀付信息
3. ⽀付宝服务端调⽤异步通知接⼝,根据返回信息处理⾃⼰的业务逻辑,⽐如记⼊本地台账,修改订单状态等
⽣成订单信息
1. 创建本地订单并保存, 商品,价格,订单号
/**
* 添加⼀条⽀付宝的订单
* @param user
* @param vipPrice
* @return
*/
安以轩的老公private VipOrder addVipOrder(User user, VipPrice vipPrice) {
//根据业务设置订单参数
VipOrder vo = new VipOrder();
vo.CostPrice());//原价
vo.CurrentPrice());//现价
vo.setGoodsId(Integer.Id()));//商品id
vo.TypeName()+Name());//商品名称
vo.setPayMode(VipOrder.PAYMODE_ALIPAY);//⽀付宝
vo.setPayState(VipOrder.PAYSTATE_CREATE);//⽀付状态
vo.setVipId(String.VipId()));//vipId
vo.TypeName());//vip名称
vo.TimesNum());//时长
vo.Uid());//⽤户id
vo.Username());//⽤户名称
vo.setOrderNum(Uid()))//订单号,⾃定义随机码就可以建议32位;
vo.setComId(String.Com_id()));//公司id
vo.Com_name());//公司名称
vo.setIsClaim(2);//初始化账单为未索取
vipOrderMapper.add(vo);//新增⼀条数据
return vo;
}
订单实体
/**
* vip_order 实体类
*
* @author pzr
*/
public class VipOrder implements Serializable {
/**
* ⽀付⽅式⽀付宝
*/
public static final String PAYMODE_ALIPAY = "alipay";
/**
* ⽀付⽅式
*/
public static final String PAYMODE_WX = "wx";
/**
* ⽀付状态创建待付款如何办理出国签证
*/
public static final String PAYSTATE_CREATE = "create";
/**
* ⽀付状态⽀付成功
*/
public static final String PAYSTATE_SUCCESS = "success"; /**
* ⽀付状态⽀付完成,完成后不可退款
*/
public static final String PAYSTATE_FINISHED = "finished"; /**
* ⽀付状态⽀付失败
*/
public static final String PAYSTATE_FAILURE = "failure";
private static final long serialVersionUID = -1L;
/**
* 套餐id
*/
private Integer goodsId = -1; /**
* 原价
*/
private String costPrice;
/**
* 备注
*/
工商管理就业private String remark;
/**
* 商品时长单位(⽉)
*/
private Integer timesNum = -1; /**
win7自动关机命令* vip编号
*/
private String orderNum;
/**
* 现价
*/
private String currentPrice;
/**
*
*/
private String id;
/**
* 订单创建时间
*/
private String createtime;
/
**
* ⽀付状态
*/
private String payState;
private String payState;
/**
* 处理对象,包含【处理时间】【处理类型】 */
private Integer handId = -1;
/**
* ⽀付⽅式
*/
private String payMode;李尚顺
/**
* ⽤户id
*/
private Integer userId = -1;
/**
* ⽤户名称
*/
private String userName;
/**
* 商品名称
章子怡的资料
*/
private String goodsName;
/**
* 企业id
*/
private String comId;
/**
* 企业名称
*/
private String comName;
/**
发布评论