支付流程说明
消费流程:
1)用户在App中发起支付,App调用SDK支付接口payFromServer
2)SDK与Ali服务端进行支付确认后,向用户显示支付页面
3)用户确认支付后,SDK向Ali服务端发起并完成支付
4)Ali服务端 将支付结果反馈给SDK,并通知App服务端
5)App服务端通过回调的订单信息,决定是否向App的用户发放道具
网络应用续订首次支付
接口说明:
public static void repayFromServer,实现自动续费功能,应用若需接入续费支付接口,需联系阿里运营配置开通。首笔续费将通过客户端实时完成,后续续费通过应用的服务端调用数娱的服务端实现。请注意续费接口的规则,不满足规则的调用将无法实现首笔支付或后续支付。
前置条件:无
函数原型:
public static void repayFromServer(String subject, String orderId, String interval, List priceList, String description,finalString title,finalString notifyUrl,finalString subjectId,finalIPayListener payListener)
参数说明:
subject:续费商品包,如“影视包月”
orderId:订单号,CP的服务端生成
interval:自动续费模式 (month:按月、season:按季),只支持两种固定模式;无论按月或按季度都仅支持1年内的续费,即按月续费时,后续应用服务端最多可发起11次续费请求,按季续费后续最多可发起3次续费。
priceList:价格列表,包含本次消费,后续每次续订消费金额
description(可选):业务权益结束时间,若没有则为空
title:支付目标商品 ,如“xx影视”
notifyUrl:支付结束后,阿里服务器回调给CP服务器的回调地址
subjectId(可选) 商品ID,如为空,则无法参加消费激励活动,建议必填。
payListener:回调函数,支付结束后通知成功或者失败。
请求样例:AliTvSdk.pay("XX商品", "12345678", "month",
Arrays.asList(arr), "权益描述",
"支付物品名称", "http://setbycp2", null,
new IPayListener(){
@Override
public void onSuccess(String title, int amount) {
TestToast.show("支付成功");
}
@Override
public void onError(String title, int amount, String errMsg) {
TestToast.show("支付失败, 原因:" + errMsg);
}
@Override
public void onError(String errCode, String errMsg) {
TestToast.show(" 支付失败。" + errCode + ":" + errMsg);
}
@Override
public void onCancel(String title, int amount) {
TestToast.show("支付取消");
}
});
网络应用续订后续支付
接口说明:
商户在使用客户端成功创建续费序列后,可以通过服务端,向支付后台发送续费请求。
接入方式:TOP
TOP接入指南见
//open.taobao.com/doc2/detail.htm?spm=a219a.7629140.0.0.jlQptD&treeId=49&articleId=101617&docType=1
TOP辅助工具类(java)见附录。
API:
taobao.tvpay.partner.renewal.pay
请求参数结构:参数名称参数说明是否必填详情
partner_notify_url回调地址是
partner_order_no该笔订单的商户订单号是
price价格,以人民币分为单位是需和最初创建序列时一直,否则会报错。
ref_order_no序列首笔订单商户订单号是从sdk创建序列时,该笔订单对应的商户订单号。
Seq续费序列号。是SDK上支付的首笔seq算作0,从后台续费的第一笔seq为1,类推。
Subject商品标题是
subject_id商品id是
返回基础结构说明:字段说明
Codesuccess:成功
message提示信息或错误信息
data.data返回业务参数(需要RSA方式使用私钥解密,得到json串并解析成结构化的data参数)
返回基础结构样例:{
"tvpay_partner_renewal_pay_response":{
"result":{
"code":"success",
"data":{
"order_status":"TRADE_SUCCESS"
},
"message":"success",
"success":true
}
}
}
如果请求成功(success为true),参考order_status字段校验订单状态
WAIT_BUYER_PAY等待买家支付
TRADE_SUCCESS支付成功
TRADE_CLOSED交易关闭
如果请求失败,请参考错误码code字段,分析错误原因。
TERM_COUNT_EXCEED_LIMIT,账期过多
RENEWAL_PRICE_ERROR,金额校验未通过
RENEWAL_PRICE_EXCEED_LIMIT续费总额超过限制
RENEWAL_ORDER_NOT_ALLOWED应用暂不支持续费
RENEWAL_ORDER_INFO_ERROR订单信息有误
RENEWAL_THREAD_NOT_FOUND未找到续费序列
RENEWAL_THREAD_STATUS_ERROR续费序列状态异常
RENEWAL_ORDER_PAY_FAIL续费订单支付失败
RENEWAL_TIME_ERROR未到续费时间
RENEWAL_THREAD_SEQ_ERROR续费账期有误
--------------------------------------------------------------------------------