Android支付宝支付开发流程

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支付宝支付开发流程