網路應用支付介面


支付流程說明

1434706053921_a87ff679a2f3e71d9181a67b7542122c.jpg

#消費流程:

1) 使用者在App中發起支付,App呼叫SDK支付介面payFromServer

2) SDK與Ali服務端進行付款確認後,向使用者顯示付款頁面

#3) 用戶確認付款後,SDK向Ali服務端發起並完成支付

4) Ali服務端將支付結果回饋給SDK,並通知App服務端

5) App服務端透過回呼的訂單訊息,決定是否要發給App的使用者道具


 

網路應用程式支付介面

介面說明:

# App服務端將支付參數傳遞給App,App呼叫支付介面payFromServer完成支付
阿里服務端將支付結果通知SDK和App服務端,App服務端決定道具是否發放

前置條件:

函數原型:

public static void payFromServer(String title, String amount, String orderId, String notifyUrl,String subjectId, IPayListener payListener)

參數說明:

title:支付物品名稱,如“寶石”

amount:人民幣“分” (如amount =100,代表1元人民幣)

subjectId商品ID(用於參與激勵活動商品標示,由CP自訂)可選

orderId:訂單號,CP的服務端產生

notifyUrl:支付結束後,阿里伺服器回呼給CP伺服器的回呼位址

payListener:回呼函數,支付結束後通知App客戶端成功或失敗。

 

請求範例:


Stringamount = “2”;
             String title ="支付人民币0.02元";
             finalString orderId = System.currentTimeMillis() +"";
             // App服务端提供回调接口,用于接收支付成功的消息
             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("二维码扫码支付取消");
                                  }
                           });


 

 

服務端支付成功後回呼通知

介面說明:

##第三方應用程式需要開發一個HTTP服務,並提供的伺服器介面位址,例如:http://第三方應用服務端位址/XXX 數娛服務端使用商家提供的公鑰(public_key)對參數加密產生加密串連encryptString(解密出來為json格式),並在app請求提供的URL(參數為:notify_url)中加入本次成功的訂單資訊加密串(格式為:notify_url?data=encryptString) 數娛服務端將上述資訊向APP服務端發送http請求,若收到回傳訊息為“success”,則發送成功,若回傳訊息為其他,遞增時間間隔重發。

Data解密後資料結構

#(value)

#鍵名稱(key)

partner_order_no

#商家訂單編號

################################## #alipay_trade_no############支付寶交易流水號碼##################order_status############訂單狀態##################WAIT_BUYER_PAY等待買家支付##################TRADE_SUCCESS 支付成功##### #############TRADE_CLOSED交易關閉##################buyer_logon_id#############付款人支付寶帳號###############

 

 

伺服器端主動查詢訂單付款狀態

介面說明

商家可以透過該介面主動查詢訂單付款狀態,主要用於客戶端付款成功後,商家接到收付款成功後主動查詢一次,用於驗證訂單是否已付款成功。

接取方式:TOP

TOP接取指南見://open.taobao.com/doc2/detail.htm?spm=a219a.7629140.0.0 .jlQptD&treeId=49&articleId=101617&docType=1

APItaobao.tvpay.partner.order.query

參數說明

#請求參數結構:

參數名稱

是否必填

商家自己的訂單號碼#傳回基礎結構說明

order_no
商家訂單號碼

#####欄位################ ##說明#####################code#############success:成功########## ########message############提示訊息或錯誤訊息##################data.data### #########傳回業務參數(需要RSA方式使用私鑰解密,得到json字串並解析成結構化的data參數)################

傳回基礎結構範例:

{
   "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 解密後資料結構:

#鍵名稱(key)

(value)

partner_order_no

商家訂單號碼

alipay_trade_no

支付寶交易流水號碼

order_status

訂單狀態

WAIT_BUYER_PAY等待買家庭支付

TRADE_SUCCESS 支付成功

##TRADE_CLOSED交易關閉

TRADE_CLOSED交易關閉

price
訂單價格,以人民幣分成單位

subject
商品標題

#subject_id

##subject_id

##商品id

buyer_logon_id

#######付款方支付寶帳號####################################################################################################################### ## ######