实现 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 微信支付成功回调的功能。祝你顺利!如果有任何问题,欢迎随时向我咨询。