请给出Android开发中微信支付所有相关的实例代码
时间: 2023-06-13 17:07:54 浏览: 190
微信支付在Android开发中,主要涉及以下几个步骤:
1. 获取微信支付API密钥和商户ID
2. 添加微信支付SDK到Android项目中
3. 调用API接口生成预支付订单
4. 调用微信支付SDK启动支付流程
5. 处理支付结果
下面是一个简单的微信支付的实例代码:
1. 添加依赖
在项目的 build.gradle 文件中添加以下依赖:
```
dependencies {
// 微信支付依赖
implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
}
```
2. 调用API接口生成预支付订单
在调用API接口生成预支付订单之前,需要先获取微信支付API密钥和商户ID,并且在 AndroidManifest.xml 文件中添加以下代码:
```
<!-- 微信支付配置 -->
<meta-data
android:name="com.tencent.mm.sdk.openapi.WXPayEntryActivity"
android:value=".wxapi.WXPayEntryActivity" />
<!-- 微信支付回调activity -->
<activity
android:name=".wxapi.WXPayEntryActivity"
android:exported="true"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
```
接下来,可以使用以下代码生成预支付订单:
```
try {
// 创建预支付订单请求对象
PayReq request = new PayReq();
// 订单号
request.partnerId = "商户ID";
// 商户密钥
request.prepayId= "预支付订单ID";
// 随机字符串
request.nonceStr= "随机字符串";
// 时间戳
request.timeStamp= "时间戳";
// 签名
request.sign= "签名";
// 调用微信支付SDK启动支付流程
IWXAPI wxapi = WXAPIFactory.createWXAPI(context, "微信支付API密钥");
wxapi.sendReq(request);
} catch (Exception e) {
e.printStackTrace();
}
```
3. 处理支付结果
在 WXPayEntryActivity 中可以处理微信支付结果,以下是一个简单的实现:
```
public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
private IWXAPI api;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
api = WXAPIFactory.createWXAPI(this, "微信支付API密钥");
api.handleIntent(getIntent(), this);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
api.handleIntent(intent, this);
}
@Override
public void onReq(BaseReq req) {}
@Override
public void onResp(BaseResp resp) {
if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
if (resp.errCode == 0) {
// 支付成功
} else if (resp.errCode == -1) {
// 支付失败
} else if (resp.errCode == -2) {
// 用户取消支付
}
finish();
}
}
}
```
注意事项:
1. 以上代码仅供参考,具体实现需要根据实际情况进行调整。
2. 在使用微信支付时,需要保证微信支付API密钥和商户ID的正确性。
3. 微信支付SDK需要在AndroidManifest.xml文件中注册。
阅读全文