Android支付——微信支付总结
Android 支付——微信支付总结
微信支付是中国最大的第三方支付平台之一,提供给开发者使用的API和SDK使得开发者可以轻松地集成微信支付功能到自己的应用中。与支付宝不同,微信支付在客户端不需要太多的操作,大多依赖于服务器端。这篇文章将详细描述如何使用微信支付进行开发。
1. 微信支付的基本原理
微信支付的基本原理是这样的:当用户在应用中点击购买或支付按钮时,应用会向微信支付服务器发送请求,请求微信支付进行支付。微信支付服务器接收到请求后,会生成一个随机的订单号,并将订单信息传递给应用。应用可以根据这个订单号来确定是否成功完成了支付。
2. 导入jar包
首先,我们需要导入微信支付的SDK包。下载并解压微信支付的SDK包后,将libammsdk.jar包放入应用工程的libs目录下。
3. 修改AndroidManifest.xml文件
在AndroidManifest.xml文件中,需要添加以下代码:
```xml
android:value="你的微信开放平台ID" /> ``` 其中,`WX_APP_ID`是你在微信开放平台申请的应用ID。 4. 初始化微信支付 在应用的入口函数中(通常是MainActivity),需要初始化微信支付: ```javaimport com.tencent.mm.opensdk.openapi.IWXAPI; import com.tencent.mm.opensdk.openapi.WXAPIFactory; public class MainActivity extends AppCompatActivity { private IWXAPI api; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化微信支付 api = WXAPIFactory.createWXAPI(this, "你的微信开放平台ID"); } } ``` 5. 发起支付请求 当用户点击购买或支付按钮时,需要发起支付请求: ```javaimport com.tencent.mm.opensdk.openapi.IWXAPI; import com.tencent.mm.opensdk.openapi.WXPayUtil; public class MainActivity extends AppCompatActivity { private IWXAPI api; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化微信支付 api = WXAPIFactory.createWXAPI(this, "你的微信开放平台ID"); // 发起支付请求 String orderNo = "订单号"; String price = "价格"; String body = "商品描述"; PayReq req = new PayReq(); req.appId = "你的微信开放平台ID"; req.partnerId = "商户ID"; req.prepayId = WXPayUtil.generatePrepayId(api, orderNo, price); req.packageValue = "Sign=WXPay"; req.nonceStr = WXPayUtil.generateNonceStr(); req.timeStamp = String.valueOf(System.currentTimeMillis() /1000); req.sign = WXPayUtil.generateSignature(req, "你的微信开放平台密钥"); api.sendReq(req); } } ``` 6. 处理支付结果 当用户完成支付后,需要处理支付结果: ```javaimport com.tencent.mm.opensdk.openapi.IWXAPI; import com.tencent.mm.opensdk.openapi.WXPayUtil; public class MainActivity extends AppCompatActivity { private IWXAPI api; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化微信支付 api = WXAPIFactory.createWXAPI(this, "你的微信开放平台ID"); // 处理支付结果 String orderNo = "订单号"; PayResult payResult = new PayResult(); payResult.errCode =0; payResult.errMsg = ""; payResult.transactionId = WXPayUtil.generateTransactionId(orderNo); api.handlePayResult(payResult); } } ``` 以上就是使用微信支付进行开发的基本步骤。需要注意的是,微信支付的SDK包需要在应用工程的libs目录下,并且需要添加相关的权限和配置文件。 总结 微信支付是中国最大的第三方支付平台之一,提供给开发者使用的API和SDK使得开发者可以轻松地集成微信支付功能到自己的应用中。与支付宝不同,微信支付在客户端不需要太多的操作,大多依赖于服务器端。这篇文章详细描述了如何使用微信支付进行开发,包括导入jar包、修改AndroidManifest.xml文件、初始化微信支付、发起支付请求和处理支付结果。