android 支付宝 服务端,Android集成支付宝支付

相比微信支付,支付宝支付简单了许多,它的交互过程如图:

a6a2d1875649f2b6fdd30f7bceacc06f.png

首先导入jar包:alipaySdk-20161222.jar,可以去官网上下个demo,里面就有这个jar包。

然后在AndroidManifest中配置:

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

android:configChanges="orientation|keyboardHidden|navigation|screenSize"

android:exported="false"

android:screenOrientation="behind"

android:windowSoftInputMode="adjustResize|stateHidden">

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

android:configChanges="orientation|keyboardHidden|navigation"

android:exported="false"

android:screenOrientation="behind"

android:windowSoftInputMode="adjustResize|stateHidden">

然后还是app传递商品的信息请求自己的服务器,服务端开发人员会根据支付宝服务端的sdk提供的方法将订单信息加密成一个字符串orderstr返回给app,拿到这个加密的订单信息的字符串后,调起支付宝支付界面:

private void handleResult(final String payInfo) {

Runnable payRunnable = new Runnable() {

@Override

public void run() {

// 构造PayTask 对象

PayTask alipay = new PayTask(SelectPayWayActivity.this);

// 调用支付接口,获取支付结果

Map result = alipay.payV2(payInfo, true);

Message msg = new Message();

msg.what = SDK_PAY_FLAG;

msg.obj = result;

sendUiMessage(msg);

}

};

// 必须异步调用

Thread payThread = new Thread(payRunnable);

payThread.start();

}

alipay调用的方法有pay和payV2两个,返回值的类型不一样,一个String,一个是Map类型,如果使用了demo中的PayResult,就用payV2方法。

支付回调的处理:

case SDK_PAY_FLAG:

PayResult payResult = new PayResult((Map) msg.obj);

String resultInfo = payResult.getResult();// 同步返回需要验证的信息

String resultStatus = payResult.getResultStatus();

// 判断resultStatus 为“9000”则代表支付成功,具体状态码代表含义可参考接口文档

if (TextUtils.equals(resultStatus, "9000")) {

showToast("支付成功");

} else {

// "8000"代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态)

if (TextUtils.equals(resultStatus, "8000")) {

showToast("支付结果确认中");

} else {

// 其他值就可以判断为支付失败,包括用户主动取消支付,或者系统返回的错误

showToast("支付失败");

}

}

break;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值