实现 Android 微信支付成功回调

整体流程

首先,我们需要在我们的 Android 应用中集成微信支付功能,然后在支付成功后接收微信的回调通知。以下是整个流程的步骤表格:

步骤 操作
1 集成微信支付SDK
2 发起支付请求
3 处理支付结果回调

操作步骤

1. 集成微信支付SDK

首先,我们需要在项目的 build.gradle 文件中添加微信支付SDK的依赖:

implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:x.x.x' // 根据实际情况填写版本号

然后,在 AndroidManifest.xml 文件中添加微信支付的配置:

<!-- 微信支付的权限 -->
<uses-permission android:name="android.permission.INTERNET" />

<!-- 微信支付的回调Activity -->
<activity
    android:name=".wxapi.WXPayEntryActivity"
    android:exported="true"
    android:launchMode="singleTop" >
</activity>

2. 发起支付请求

在发起支付请求的地方,我们需要调用微信支付API来生成预支付订单并拉起微信支付界面。在调用微信支付API之前,需要先注册到微信开放平台获取到appid。

// 创建微信支付请求参数
PayReq req = new PayReq();
req.appId = "your_app_id"; // 替换成你的App ID
req.partnerId = "your_partner_id"; // 商户号
req.prepayId = "your_prepay_id"; // 预支付ID
req.packageValue = "Sign=WXPay";
req.nonceStr = "your_nonce_str"; // 随机字符串
req.timeStamp = "your_timestamp"; // 时间戳
req.sign = "your_sign"; // 签名

// 发起支付
api.sendReq(req);

3. 处理支付结果回调

在 WXPayEntryActivity(可以自定义类名)中处理支付结果回调,需要继承自 com.tencent.mm.opensdk.openapi.WXPayEntryActivity 类,并重写 onResp() 方法。

public class WXPayEntryActivity extends WXPayEntryActivity {
    @Override
    public void onResp(BaseResp resp) {
        // 处理支付结果
        if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
            if (resp.errCode == 0) {
                // 支付成功
                // 进行支付成功后的逻辑处理
            } else {
                // 支付失败
                // 进行支付失败后的逻辑处理
            }
        }
    }
}

类图

classDiagram
    class PayReq {
        appId: String
        partnerId: String
        prepayId: String
        packageValue: String
        nonceStr: String
        timeStamp: String
        sign: String
    }

    class BaseResp {
        errCode: int
        getType(): int
    }

    class ConstantsAPI {
        COMMAND_PAY_BY_WX
    }

    class WXPayEntryActivity {
        onResp(BaseResp)
    }

通过以上步骤,你可以成功实现 Android 微信支付成功回调的功能。祝你顺利!如果有任何问题,欢迎随时向我咨询。