概述
功能流程
数据交互
代码的大致流程:
首先先向支付宝发送订单支付,使用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
最后
以上就是阳光绿茶为你收集整理的支付宝支付的大致流程的全部内容,希望文章能够帮你解决支付宝支付的大致流程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复