Android支付宝支付开发流程
2017-07-05 19:56
337 查看
Android支付宝支付开发流程
需要内容:
账号信息:商户号、商户收款账号、商户私钥、支付宝公钥、
支付回调地址(支付宝请求服务器地址)
aliPaySDK.jar包、 Base64.java、PayResult.java、SignUtils.java
开发步骤:
1、将jar包,上诉三个java类拷入项目,将jar包AddLibrary
2、在清单文件中添加权限
<!--
支付宝支付权限-->
<uses-permission android:name="android.permission.INTERNET"
/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"
/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"
/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"
/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
/>
3、选择商品下单,对订单信息签名
此步骤最好在服务器端执行,请求服务器返回:
getSignOrderFromServer();
也可在客户端执行
3.1 使用当前时间+随机数生成订单id(保证id唯一)
3.2 使用订单各信息,拼接订单信息
3.3 对订单信息签名
//
创建订单id
orderId = getOutTradeNo();
// 创建订单信息
orderInfo = getOrderInfo(goodsName,
goodsDetails,
price);
// 签名
String sign = sign(orderInfo);
try
{
//
仅需对sign
做URL编码
sign = URLEncoder.encode(sign,
"UTF-8");
} catch
(UnsupportedEncodingException e) {
//
TODO Auto-generated catch block
e.printStackTrace();
}
orderInfo =
orderInfo +
"&sign=\""
+ sign + "\"&"
+getSignType();
4、用签名过得订单信息orderInfo,调起支付宝支付界面,并获得支付结果
(注意:应开启子线程执行此操作)
PayTask alipay =
new PayTask((Activity)
context);
final String result = alipay.pay(orderInfo);
PayResult payResult = new
PayResult(result);
// 支付宝返回此次支付结果及加签,建议对支付宝签名信息拿签约时支付宝提供的公钥做验签
String resultInfo = payResult.getResult();
String resultStatus = payResult.getResultStatus();
5、对支付结果判断及逻辑处理
resultStatus == 9000 :支付成功
resultStatus == 8000 :支付中
resultStatus == 其他 :支付失败
6、请求服务器,验证支付是否成功。都成功,则此次支付成功,有一方未成功,则支付失败。
7、完成!
支付流程图:
![](https://img-blog.csdn.net/20170705195642562?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamlhc2h1YWk5NA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
需要内容:
账号信息:商户号、商户收款账号、商户私钥、支付宝公钥、
支付回调地址(支付宝请求服务器地址)
aliPaySDK.jar包、 Base64.java、PayResult.java、SignUtils.java
开发步骤:
1、将jar包,上诉三个java类拷入项目,将jar包AddLibrary
2、在清单文件中添加权限
<!--
支付宝支付权限-->
<uses-permission android:name="android.permission.INTERNET"
/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"
/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"
/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"
/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
/>
3、选择商品下单,对订单信息签名
此步骤最好在服务器端执行,请求服务器返回:
getSignOrderFromServer();
也可在客户端执行
3.1 使用当前时间+随机数生成订单id(保证id唯一)
3.2 使用订单各信息,拼接订单信息
3.3 对订单信息签名
//
创建订单id
orderId = getOutTradeNo();
// 创建订单信息
orderInfo = getOrderInfo(goodsName,
goodsDetails,
price);
// 签名
String sign = sign(orderInfo);
try
{
//
仅需对sign
做URL编码
sign = URLEncoder.encode(sign,
"UTF-8");
} catch
(UnsupportedEncodingException e) {
//
TODO Auto-generated catch block
e.printStackTrace();
}
orderInfo =
orderInfo +
"&sign=\""
+ sign + "\"&"
+getSignType();
4、用签名过得订单信息orderInfo,调起支付宝支付界面,并获得支付结果
(注意:应开启子线程执行此操作)
PayTask alipay =
new PayTask((Activity)
context);
final String result = alipay.pay(orderInfo);
PayResult payResult = new
PayResult(result);
// 支付宝返回此次支付结果及加签,建议对支付宝签名信息拿签约时支付宝提供的公钥做验签
String resultInfo = payResult.getResult();
String resultStatus = payResult.getResultStatus();
5、对支付结果判断及逻辑处理
resultStatus == 9000 :支付成功
resultStatus == 8000 :支付中
resultStatus == 其他 :支付失败
6、请求服务器,验证支付是否成功。都成功,则此次支付成功,有一方未成功,则支付失败。
7、完成!
支付流程图:
相关文章推荐
- Android 支付宝支付开发流程
- Android 支付宝支付开发流程
- 对Android中集成支付宝支付流程的总结
- iOS开发之第三方支付支付宝支付教程,史上最新最全第三方支付宝支付方式实现、支付宝集成教程,支付宝实现流程
- ASP.NET支付宝扫码即时到账支付开发流程(下)
- Android开发中第三方支付支付宝、微信
- Android自定义控件开发系列(三)——仿支付宝六位支付密码输入页面
- 支付宝支付功能开发简易流程
- android支付宝支付开发过程
- Android开发——支付宝和微信支付快速接入流程
- ASP.NET支付宝扫码即时到账支付开发流程(上)
- android支付宝支付流程
- iOS 支付宝支付开发集成流程,这里记载的是签名保存在前台的集成,
- Android开发之微信支付,支付宝支付
- android支付宝支付开发过程
- android开发支付宝接口开发流程(密钥篇)
- android支付宝支付开发过程
- 移动APP 支付宝快捷支付开发流程
- PHP支付宝支付开发流程