您的位置:首页 > 移动开发 > Android开发

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、完成!
 
支付流程图:
 


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 支付宝 支付