网络应用支付接口

支付流程说明

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解密后数据结构

键名(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

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交易关闭

price

订单价格,以人民币分为单位

subject

商品标题

subject_id

商品id

buyer_logon_id

付款方支付宝账号