網(wǎng)絡(luò)應(yīng)用續(xù)訂支付接口
支付流程說明
消費流程:
1) 用戶在App中發(fā)起支付,App調(diào)用SDK支付接口payFromServer
2) SDK與Ali服務(wù)端進行支付確認(rèn)后,向用戶顯示支付頁面
3) 用戶確認(rèn)支付后,SDK向Ali服務(wù)端發(fā)起并完成支付
4) Ali服務(wù)端 將支付結(jié)果反饋給SDK,并通知App服務(wù)端
5) App服務(wù)端通過回調(diào)的訂單信息,決定是否向App的用戶發(fā)放道具
網(wǎng)絡(luò)應(yīng)用續(xù)訂首次支付
接口說明:
public static void repayFromServer,實現(xiàn)自動續(xù)費功能,應(yīng)用若需接入續(xù)費支付接口,需聯(lián)系阿里運營配置開通。首筆續(xù)費將通過客戶端實時完成,后續(xù)續(xù)費通過應(yīng)用的服務(wù)端調(diào)用數(shù)娛的服務(wù)端實現(xiàn)。請注意續(xù)費接口的規(guī)則,不滿足規(guī)則的調(diào)用將無法實現(xiàn)首筆支付或后續(xù)支付。
前置條件:無
函數(shù)原型:
public static void repayFromServer (String subject, String orderId, String interval, List<String> priceList, String description, final String title, final String notifyUrl, final String subjectId, final IPayListener payListener)
參數(shù)說明:
subject:續(xù)費商品包,如“影視包月”
orderId:訂單號,CP的服務(wù)端生成
interval:自動續(xù)費模式 (month:按月、season:按季),只支持兩種固定模式;無論按月或按季度都僅支持1年內(nèi)的續(xù)費,即按月續(xù)費時,后續(xù)應(yīng)用服務(wù)端最多可發(fā)起11次續(xù)費請求,按季續(xù)費后續(xù)最多可發(fā)起3次續(xù)費。
priceList:價格列表,包含本次消費,后續(xù)每次續(xù)訂消費金額
description(可選):業(yè)務(wù)權(quán)益結(jié)束時間,若沒有則為空
title:支付目標(biāo)商品 ,如“xx影視”
notifyUrl:支付結(jié)束后,阿里服務(wù)器回調(diào)給CP服務(wù)器的回調(diào)地址
subjectId(可選) 商品ID,如為空,則無法參加消費激勵活動,建議必填。
payListener:回調(diào)函數(shù),支付結(jié)束后通知成功或者失敗。
請求樣例:
AliTvSdk.pay("XX商品", "12345678", "month", Arrays.asList(arr), "權(quán)益描述", "支付物品名稱", "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("支付取消"); } });
網(wǎng)絡(luò)應(yīng)用續(xù)訂后續(xù)支付
接口說明:
商戶在使用客戶端成功創(chuàng)建續(xù)費序列后,可以通過服務(wù)端,向支付后臺發(fā)送續(xù)費請求。
接入方式: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
請求參數(shù)結(jié)構(gòu):
參數(shù)名稱 | 參數(shù)說明 | 是否必填 | 詳情 |
partner_notify_url | 回調(diào)地址 | 是 | |
partner_order_no | 該筆訂單的商戶訂單號 | 是 |
|
price | 價格,以人民幣分為單位 | 是 | 需和最初創(chuàng)建序列時一直,否則會報錯。 |
ref_order_no | 序列首筆訂單商戶訂單號 | 是 | 從sdk創(chuàng)建序列時,該筆訂單對應(yīng)的商戶訂單號。 |
Seq | 續(xù)費序列號。 | 是 | SDK上支付的首筆seq算作0,從后臺續(xù)費的第一筆seq為1,類推。 |
Subject | 商品標(biāo)題 | 是 |
|
subject_id | 商品id | 是 |
|
返回基礎(chǔ)結(jié)構(gòu)說明:
字段 | 說明 |
Code | success:成功 |
message | 提示信息或錯誤信息 |
data.data | 返回業(yè)務(wù)參數(shù)(需要RSA方式使用私鑰解密,得到json串并解析成結(jié)構(gòu)化的data參數(shù)) |
返回基礎(chǔ)結(jié)構(gòu)樣例:
{ "tvpay_partner_renewal_pay_response":{ "result":{ "code":"success", "data":{ "order_status":"TRADE_SUCCESS" }, "message":"success", "success":true } } }
如果請求成功(success為true),參考o(jì)rder_status字段校驗訂單狀態(tài)
WAIT_BUYER_PAY 等待買家支付
TRADE_SUCCESS 支付成功
TRADE_CLOSED 交易關(guān)閉
如果請求失敗,請參考錯誤碼code字段,分析錯誤原因。
TERM_COUNT_EXCEED_LIMIT,賬期過多
RENEWAL_PRICE_ERROR,金額校驗未通過
RENEWAL_PRICE_EXCEED_LIMIT 續(xù)費總額超過限制
RENEWAL_ORDER_NOT_ALLOWED 應(yīng)用暫不支持續(xù)費
RENEWAL_ORDER_INFO_ERROR 訂單信息有誤
RENEWAL_THREAD_NOT_FOUND 未找到續(xù)費序列
RENEWAL_THREAD_STATUS_ERROR 續(xù)費序列狀態(tài)異常
RENEWAL_ORDER_PAY_FAIL 續(xù)費訂單支付失敗
RENEWAL_TIME_ERROR 未到續(xù)費時間
RENEWAL_THREAD_SEQ_ERROR 續(xù)費賬期有誤
--------------------------------------------------------------------------------
服務(wù)端支付成功后回調(diào)通知
接口說明:
第三方應(yīng)用需要開發(fā)一個HTTP服務(wù),并提供的服務(wù)器接口地址,比如:http://第三方應(yīng)用服務(wù)端地址/XXX 數(shù)娛服務(wù)端使用商戶提供的公鑰(public_key)對參數(shù)加密生成加密串encryptString(解密出來為json格式),并在app請求提供的URL(參數(shù)為:notify_url)中加入本次成功的訂單信息加密串(格式為:notify_url?data=encryptString) 數(shù)娛服務(wù)端將上述信息 向APP服務(wù)端發(fā)送http請求,若收到返回信息為“success”,則發(fā)送成功,若返回信息為其他,遞增時間間隔重發(fā)。
Data解密后數(shù)據(jù)結(jié)構(gòu):
鍵名(key) | 值(value) |
partner_order_no | 商戶訂單號 |
alipay_trade_no | 支付寶交易流水號 |
order_status | 訂單狀態(tài) |
WAIT_BUYER_PAY等待買家支付 | |
TRADE_SUCCESS 支付成功 | |
TRADE_CLOSED交易關(guān)閉 | |
buyer_logon_id | 付款方支付寶賬號 |
服務(wù)器端主動查詢訂單支付狀態(tài)
接口說明:
商戶可以通過該接口主動查詢訂單支付狀態(tài),主要用于客戶端支付成功后,商戶接到收支付成功后主動查詢一次,用于驗證訂單是否已支付成功。
接入方式:TOP
TOP接入指南見://open.taobao.com/doc2/detail.htm?spm=a219a.7629140.0.0.jlQptD&treeId=49&articleId=101617&docType=1
API:taobao.tvpay.partner.order.query
請求參數(shù)結(jié)構(gòu):
參數(shù)名稱 | 參數(shù)說明 | 是否必填 | 詳情 |
order_no | 商戶訂單號 | 是 | 商戶自己的訂單號 |
返回基礎(chǔ)結(jié)構(gòu)說明:
字段 | 說明 |
code | success:成功 |
message | 提示信息或錯誤信息 |
data.data | 返回業(yè)務(wù)參數(shù)(需要RSA方式使用私鑰解密,得到j(luò)son串并解析成結(jié)構(gòu)化的data參數(shù)) |
返回基礎(chǔ)結(jié)構(gòu)樣例:
{ "tvpay_partner_order_query_response": { "result": { "code": "success", "data": { "data": "PG5Qgxp5C+Muqohd7s01IE9SK/VnYVSxsY7nPqHFR8d+tjx3qLBeTu8llVi0+yaQHdMl/ZMTXxhchl9FiruOkX+GL5aN4S+/C68Tq5Os5dT4iilwNaDT6gw2pBtMUR9maVfXukcvFMLSx7d9XsjebWpapqTMgjOkMQjOHUA0GtcdgfFPE4sFxwB0+8SdbOYF1qoEkBoU8o0brd6/tFTJkqn/uJUbHOoqqLXCB3LmxShRa4m8KRsVPfSavOEjcSO7yfNTu7cLhGoOCRL5ffwLWVxyPRpaLfm0O8CJi9Cllb5nndWzh1zoXUtyBdfw9iHzbE0C7WArO5+YLKVCzA5c4A==" }, "message": "success", "success": true }, "request_id": "118g71ywn59zf" } }
data解密后數(shù)據(jù)結(jié)構(gòu):
鍵名(key) | 值(value) |
partner_order_no | 商戶訂單號 |
alipay_trade_no | 支付寶交易流水號 |
order_status | 訂單狀態(tài) |
WAIT_BUYER_PAY等待買家支付 | |
TRADE_SUCCESS 支付成功 | |
TRADE_CLOSED交易關(guān)閉 | |
price | 訂單價格,以人民幣分為單位 |
subject | 商品標(biāo)題 |
subject_id | 商品id |
buyer_logon_id | 付款方支付寶賬號 |