网络应用支付接口
支付流程说明
消费流程:
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解密后数据结构:
键名(key) |
值(value) |
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
API:taobao.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交易关闭 |
|
price |
订单价格,以人民币分为单位 |
subject |
商品标题 |
subject_id |
商品id |
buyer_logon_id |
付款方支付宝账号 |