支付宝支付的大致流程

功能流程

 


 

数据交互

 

 

 

 

代码的大致流程:

首先先向支付宝发送订单支付,使用sdk里的payTask.pay方法。PayTask payTask = new PayTask(activity); payTask.pay(orderInfo,boolean);

activity当前活动类,orderInfo主要包含商户的订单信息,key=“value”形式,以&连接

partner="2088101568358171"&seller_id="xxx@alipay.com"&out_trade_no="0819145412-6177"&subject=商品名称&body="商品详情"&total_fee="0.01"¬ify_url="http://notify.msp.hk/notify.htm"&service="mobile.securitypay.pay"&payment_type="1"&_input_charset="utf-8"&it_b_pay="30m"&sign="lBBK%2F0w5LOajrMrji7DUgEqNjIhQbidR13GovA5r3TgIbNqv231yC1NksLdw%2Ba3JnfHXoXuet6XNNHtn7VE%2BeCoRO1O%2BR1KugLrQEZMtG5jmJIe2pbjm%2F3kb%2FuGkpG%2BwYQYI51%2BhA3YBbvZHVQBYveBqK%2Bh8mUyb7GM1HxWs9k4%3D"&sign_type="RSA"

boolean用户在商户app内部点击付款,是否需要一个loading做为在钱包唤起之前的过渡,这个值设置为true,将会在调用pay接口的时候直接唤起一个loading,直到唤起H5支付页面或者唤起外部的钱包付款页面loading才消失。(建议将该值设置为true,优化点击付款到支付唤起支付页面的过渡过程。)

 

Sign这个字段一定要在后台完成大致流程:

除去sign、sign_type两个参数外,其他需要使用到的参数皆是要签名的参数。需要签名的参数info.

停车宝自己写的签名方法,比较复杂没怎么看懂

String sign = Rsa.sign(info,mKey.getPrivate());

mKey.getPrivate()这个方法封装在JNI里面我调取不出来

Sign方法如下

 

 

 

得到的sign切记要做utf-8 URLencode。如下:

URLEncoder.encode(sign,"utf-8")

payTask.pay(orderInfo,boolean)返回值

同步返回的数据,对于商户在服务端没有收到异步通知的时候,可以依赖服务端对同步返回的结果来进行判断是否支付成功。同步返回的结果中,sign字段描述了请求的原始数据和服务端支付的状态一起拼接的签名信息。验证这个过程包括两个部分:1、原始数据是否跟商户请求支付的原始数据一致(必须验证这个);2、验证这个签名是否能通过。上述1、2通过后,在result字段中success=true才是可信的。【特别注意,同步结果校验的逻辑,必须放在服务端处理,切记不要放在客户端】【强烈建议商户直接依赖服务端的异步通知,忽略同步返回】

返回的数据中主要看resultStatus={9000}

 错误码如下:



demo的下载地址:

http://download.csdn.net/download/xxdw1992/10011044




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值