網(wǎng)絡(luò)應(yīng)用支付接口
支付流程說明
消費(fèi)流程:
1) 用戶在App中發(fā)起支付,App調(diào)用SDK支付接口payFromServer
2) SDK與Ali服務(wù)端進(jìn)行支付確認(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)用支付接口
接口說明:
App服務(wù)端將支付參數(shù)傳遞給App,App調(diào)用支付接口payFromServer完成支付阿里服務(wù)端將支付結(jié)果通知SDK和App服務(wù)端,App服務(wù)端決定道具是否發(fā)放
前置條件:無
函數(shù)原型:
public static void payFromServer(String title, String amount, String orderId, String notifyUrl,String subjectId, IPayListener payListener)參數(shù)說明:
title:支付物品名稱 ,如“寶石”
amount:人民幣“分” (如amount =100,代表1元人民幣)
subjectId商品ID(用于參與激勵活動商品標(biāo)示,由CP自定義)可選
orderId:訂單號,CP的服務(wù)端生成
notifyUrl:支付結(jié)束后,阿里服務(wù)器回調(diào)給CP服務(wù)器的回調(diào)地址
payListener:回調(diào)函數(shù),支付結(jié)束后通知App客戶端成功或者失敗。
請求樣例:
Stringamount = “2”; String title ="支付人民幣0.02元"; finalString orderId = System.currentTimeMillis() +""; // App服務(wù)端提供回調(diào)接口,用于接收支付成功的消息 String notifyUrl ="http://xxxx.com/callback/notify"; AliTvSdk.payFromServer(title, amount,orderId, notifyUrl,subjectId, newIPayListener() { @Override publicvoidonSuccess(String title,intamount) { TestToast.show("二維碼掃碼支付成功"); } @Override publicvoidonError(String title,intamount, String errMsg) { TestToast.show("二維碼掃碼支付失敗,原因:"+ errMsg); } @Override publicvoidonCancel(String title,intamount) { TestToast.show("二維碼掃碼支付取消"); } });
服務(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ā)送成功,若返回信息為其他,遞增時(shí)間間隔重發(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),主要用于客戶端支付成功后,商戶接到收支付成功后主動查詢一次,用于驗(yàn)證訂單是否已支付成功。接入方式: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 | 訂單價(jià)格,以人民幣分為單位 |
subject | 商品標(biāo)題 |
subject_id | 商品id |
buyer_logon_id | 付款方支付寶賬號 |