android支付宝sdk流程,支付宝SDK

由于支付宝SDK对于整个支付流程已经介绍的十分详细了,在这里我就简单说一些注意点。

由于存在支付宝可能没有安装的情况,所以我们在调用支付宝支付时,需要对其进行判断,做出不同的处理方式,即是使用客户端支付,还是使用H5支付,这里简单阐述一下:

情况一:已安装支付宝客户端

/**

* 唤醒支付宝支付

* @param data 服务端返回订单数据

*/

public void payOrder(JSONObject data) {

registerLoadingView.setVisibility(View.GONE);

String redirectStr = data.getString("redirectStr");

if (!TextUtils.isEmpty(redirectStr)) { // 唤醒支付宝支付

Thread payThread = new Thread(() -> {

PayTask alipay = new PayTask(activity);

String result = alipay.pay(redirectStr);

Message msg = Message.obtain();

msg.what = MSG_PAY_RESPONSE;

msg.obj = result;

handler.sendMessage(msg);

});

payThread.start();

}

}

Handler handler = new Handler(msg -> {

if (MSG_PAY_RESPONSE == msg.what) {

Result result = new Result((String) msg.obj);

if (!TextUtils.isEmpty(result.getResult())) {

switch (result.getResult()) {

case "4000": // 系统异常 TODO

Toast.makeText(context, "订单支付失败", Toast.LENGTH_SHORT).show();

break;

case "6001": // 用户中途取消支付操作 TODO

Toast.makeText(context, "订单支付已被取消", Toast.LENGTH_SHORT).show();

break;

case "6002": // 网络连接出错 TODO

Toast.makeText(context, "网络连接出错", Toast.LENGTH_SHORT).show();

break;

case "9000": // 操作成功 TODO

Toast.makeText(context, "订单支付成功", Toast.LENGTH_SHORT).show();

// TODO do something...

break;

}

}

}

return false;

});

情况二:未安装支付宝客户端

需要在Androidmanifest.xml文件中加入以下代码,即可进入H5支付流程。

android:name="com.alipay.sdk.app.H5PayActivity"

android:configChanges="orientation|keyboardHidden|navigation"

android:exported="false"

android:screenOrientation="behind"

android:windowSoftInputMode="adjustResize|stateHidden" />

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值