Android 微信 支付宝支付,2行代码实现支付

6

Android 微信 支付宝支付,2行代码实现支付

Android 微信支付宝支付,2行代码实现支付

在移动应用开发中,集成第三方支付功能已经成为必备的功能之一。微信支付和支付宝支付是两大流行的支付平台,很多App都需要将它们集成进来。今天,我们就来讲解如何快速集成微信支付和支付宝支付到Android App中。

环境和工具

* Android Studio4.0+

* Java或Kotlin编程语言* 微信支付 SDK(v5.3.1+)

* 支付宝支付 SDK(v6.2.0+)

集成微信支付

步骤一:添加依赖

在 `build.gradle` 文件中,添加以下依赖:

```groovydependencies {

implementation 'com.tencent.mm.opensdk:wechat-sdk-android:$wechatVersion'

}

```

其中 `$wechatVersion` 是微信支付 SDK 的版本号。

步骤二:初始化微信支付

在应用入口处(如 `MainActivity`),添加以下代码:

```javaimport com.tencent.mm.opensdk.openapi.IWXAPI;

import com.tencent.mm.opensdk.openapi.WXAPIFactory;

public class MainActivity extends AppCompatActivity {

private static final String APP_ID = "your_app_id";

private IWXAPI api;

@Override protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// 初始化微信支付 api = WXAPIFactory.createWXAPI(this, APP_ID, true);

}

}

```

其中 `APP_ID` 是您的微信应用 ID。

步骤三:实现支付

在需要支付的地方(如按钮点击事件),添加以下代码:

```javaimport com.tencent.mm.opensdk.openapi.IWXAPI;

import com.tencent.mm.opensdk.openapi.WXPayUtil;

public class MainActivity extends AppCompatActivity {

private static final String APP_ID = "your_app_id";

private IWXAPI api;

@Override protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// 初始化微信支付 api = WXAPIFactory.createWXAPI(this, APP_ID, true);

}

public void pay(View view) {

//生成预付订单 String prepayId = generatePrepayId();

// 组装支付参数 PayReq req = new PayReq();

req.appid = APP_ID;

req.partnerid = "your_partner_id";

req.prepayid = prepayId;

req.packageValue = "Sign=WXPay";

req.noncestr = generateNonceStr();

req.timeStamp = String.valueOf(System.currentTimeMillis() /1000);

req.sign = getSignature(req);

// 发起支付 api.sendReq(req, new IWXAPI.OnQRCodeListener() {

@Override public void onQRCodeReady(Bitmap qrCode) {

// 显示二维码 ImageView imageView = findViewById(R.id.qr_code);

imageView.setImageBitmap(qrCode);

}

});

}

private String generatePrepayId() {

//生成预付订单 return "your_preaty_id";

}

private String generateNonceStr() {

//生成随机数 return UUID.randomUUID().toString();

}

private String getSignature(PayReq req) {

// 组装签名参数 Map params = new HashMap<>();

params.put("appid", APP_ID);

params.put("noncestr", generateNonceStr());

params.put("partnerid", "your_partner_id");

params.put("prepayid", generatePrepayId());

params.put("packagevalue", "Sign=WXPay");

params.put("timestamp", String.valueOf(System.currentTimeMillis() /1000));

// 计算签名 return WXPayUtil.generateSignature(params, "your_app_secret_key", false);

}

}

```

其中 `generatePrepayId()` 方法生成预付订单,`generateNonceStr()` 方法生成随机数,`getSignature(PayReq req)` 方法计算签名。

步骤四:处理支付结果

在需要支付的地方(如按钮点击事件),添加以下代码:

```javaimport com.tencent.mm.opensdk.openapi.IWXAPI;

import com.tencent.mm.opensdk.openapi.WXPayUtil;

public class MainActivity extends AppCompatActivity {

private static final String APP_ID = "your_app_id";

private IWXAPI api;

@Override protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// 初始化微信支付 api = WXAPIFactory.createWXAPI(this, APP_ID, true);

}

public void pay(View view) {

//生成预付订单 String prepayId = generatePrepayId();

// 组装支付参数 PayReq req = new PayReq();

req.appid = APP_ID;

req.partnerid = "your_partner_id";

req.prepayid = prepayId;

req.packageValue = "Sign=WXPay";

req.noncestr = generateNonceStr();

req.timeStamp = String.valueOf(System.currentTimeMillis() /1000);

req.sign = getSignature(req);

// 发起支付 api.sendReq(req, new IWXAPI.OnQRCodeListener() {

@Override public void onQRCodeReady(Bitmap qrCode) {

// 显示二维码 ImageView imageView = findViewById(R.id.qr_code);

imageView.setImageBitmap(qrCode);

}

});

// 处理支付结果 api.handleIntent(getIntent(), new IWXAPI.OnActivityResultListener() {

@Override public boolean onActivityResult(int requestCode, int resultCode, Intent data) {

if (requestCode ==0 && resultCode == RESULT_OK) {

// 支付成功 Toast.makeText(MainActivity.this, "支付成功", Toast.LENGTH_SHORT).show();

} else {

// 支付失败 Toast.makeText(MainActivity.this, "支付失败", Toast.LENGTH_SHORT).show();

}

return true;

}

});

}

private String generatePrepayId() {

//生成预付订单 return "your_preaty_id";

}

private String generateNonceStr() {

//生成随机数 return UUID.randomUUID().toString();

}

private String getSignature(PayReq req) {

// 组装签名参数 Map params = new HashMap<>();

params.put("appid", APP_ID);

params.put("noncestr", generateNonceStr());

params.put("partnerid", "your_partner_id");

params.put("prepayid", generatePrepayId());

params.put("packagevalue", "Sign=WXPay");

params.put("timestamp", String.valueOf(System.currentTimeMillis() /1000));

// 计算签名 return WXPayUtil.generateSignature(params, "your_app_secret_key", false);

}

}

```

其中 `handleIntent(Intent intent)` 方法处理支付结果。

集成支付宝支付

步骤一:添加依赖

在 `build.gradle` 文件中,添加以下依赖:

```groovydependencies {

implementation 'com.alipay.sdk:alipaysdk:$alipayVersion'

}

```

其中 `$alipayVersion` 是支付宝 SDK 的版本号。

步骤二:初始化支付宝支付

在应用入口处(如 `MainActivity`),添加以下代码:

```javaimport com.alipay.sdk.app.PayTask;

public class MainActivity extends AppCompatActivity {

private static final String APP_ID = "your_app_id";

private PayTask payTask;

@Override protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// 初始化支付宝支付 payTask = new PayTask(this, APP_ID, true);

}

}

```

其中 `APP_ID` 是您的支付宝应用 ID。

步骤三:实现支付

在需要支付的地方(如按钮点击事件),添加以下代码:

```javaimport com.alipay.sdk.app.PayTask;

public class MainActivity extends AppCompatActivity {

private static final String APP_ID = "your_app_id";

private PayTask payTask;

@Override protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// 初始化支付宝支付 payTask = new PayTask(this, APP_ID, true);

}

public void pay(View view) {

//生成预付订单 String prepayId = generatePrepayId();

// 组装支付参数 Map params = new HashMap<>();

params.put("appid", APP_ID);

params.put("partnerid", "your_partner_id");

params.put("prepayid", prepayId);

params.put("packagevalue", "Sign=WXPay");

params.put("timestamp", String.valueOf(System.currentTimeMillis() /1000));

// 计算签名 String sign = AlipaySignature.rsa256(params, "your_app_secret_key");

// 发起支付 payTask.pay(params, new PayResultListener() {

@Override public void onPaySuccess(String result) {

// 支付成功 Toast.makeText(MainActivity.this, "支付成功", Toast.LENGTH_SHORT).show();

}

@Override public void onPayFailure(String result) {

// 支付失败 Toast.makeText(MainActivity.this, "支付失败",

支付androidjava支付宝微信支付

版权声明:除非特别标注,否则均为网络文章,侵权请联系站长删除。

上一篇 uni-app端微信支付

下一篇 详解微信支付中的异步通知