Android开发中,大多数电商APP都会有支付这么模块,此博客就讲一下微信支付,代码不多,很简单就可以完成,支付宝支付请看博客 Android支付之支付宝封装类

先来看看效果图

微信支付首先要去微信开发平台申请,得到相关信息,根据微信平台文档操作即可,如:appId  keydeng

首先导入libammsdk.jar 包

之后在项目包名下创建 wxapi 包  如  com.zq.demo.wxapi  前提  com.zq.demo  包名乃是项目包名,不能有错。

包下有三个类

Constants.Java(注:当然这个类也可以不要)

  1. public class Constants {
  2.  
  3. public static final String APP_ID = "申请的APPID";
  4. public static class ShowMsgActivity {
  5. public static final String STitle = "showmsg_title";
  6. public static final String SMessage = "showmsg_message";
  7. public static final String BAThumbData = "showmsg_thumb_data";
  8. }
  9. }

AppRegister.java  注册

  1. public class AppRegister extends BroadcastReceiver {
  2.  
  3. @Override
  4. public void onReceive(Context context, Intent intent) {
  5. final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);
  6. msgApi.registerApp(Constants.APP_ID);
  7. }
  8. }

WXPayEntryActivity.java 支付回调

  1. /***
  2. * 微信支付成功回调接口
  3. * @author zq
  4. *
  5. */
  6. public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler{
  7.  
  8. private static final String TAG = "MicroMsg.SDKSample.WXPayEntryActivity";private IWXAPI api;
  9. @Override
  10. public void onCreate(Bundle savedInstanceState) {
  11. super.onCreate(savedInstanceState);
  12. setContentView(R.layout.pay_result);
  13. api = WXAPIFactory.createWXAPI(this,Constants.APP_ID);
  14. api.handleIntent(getIntent(), this);
  15. }
  16.  
  17. @Override
  18. protected void onNewIntent(Intent intent) {
  19. super.onNewIntent(intent);
  20. setIntent(intent);
  21. api.handleIntent(intent, this);
  22. }
  23. @Override
  24. public void onReq(BaseReq req) {
  25. }
  26. @Override
  27. public void onResp(BaseResp resp) {
  28. if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
  29. AlertDialog.Builder builder = new AlertDialog.Builder(this);
  30. builder.setTitle(R.string.app_tip);
  31. builder.setMessage(getString(R.string.pay_result_callback_msg, String.valueOf(resp.errCode)));
  32. builder.show();
  33.  
  34. if(resp.errCode==0)//返回参数意思 参考文档即可
  35. {
  36. //支付成功 执行相关操作
  37. }
  38. else
  39. {
              //支付失败
  40.  
  41. }
  42.  
  43. }
  44. finish();
  45. }
  46. }

调用支付

  1. /***
  2. * 微信支付
  3. */
  4. public void wxpaly() {
  5. PayReq request = new PayReq();
  6. request.appId =Constants.APP_ID;
  7. request.nonceStr ="iuWeKvt82vAGzxH3";
  8. request.partnerId = "1900000109";
  9. request.prepayId = "1101000000140415649af9fc314aa427",;
  10. request.packageValue = "Sign=WXPay";
  11. request.timeStamp = "支付时间";
  12. request.sign = "7FFECB600D7157C5AA49810D2D8F28BC2811827B";
  13. api.sendReq(request);
  14. }

其中的参数为了安全一般是从后台接口获取得到的。

AndroidManifest.xml配置

  1. <activity
  2. android:name="com.zq.demo.wxapi.WXPayEntryActivity"
  3. android:exported="true"
  4. android:launchMode="singleTop" >
  5. <intent-filter>
  6. <action android:name="android.intent.action.VIEW" />
  7.  
  8. <category android:name="android.intent.category.DEFAULT" />
  9.  
  10. <data android:scheme="申请的APPId" />
  11. </intent-filter>
  12. </activity>
  13.  
  14. <receiver android:name="com.zq.demo.wxapi.AppRegister" >
  15. <intent-filter>
  16. <action android:name="com.tencent.mm.plugin.openapi.Intent.ACTION_REFRESH_WXAPP" />
  17. </intent-filter>
  18. </receiver>

权限:

  1. <uses-permission android:name="android.permission.INTERNET" />
  2. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

代码不多,主要是细节,希望对大家有所帮助。

Android之微信支付的更多相关文章

  1. Android开发 --微信支付开发(转载!)(开发工具:Eclipse)

    Android_APP 微信支付接口开发 日期:2015-10-06 12:47:33 作者: 来源: 人气:3549 1.首先说一下我们在开发微信支付接口的时候遇到最多和最疑惑的问题,那就是明明 a ...

  2. Android对接微信支付体验

    在写正文之前我不得不吐槽一下:微信支付所提供的参考文档以及技术支持真心太烂了. 微信的坑: 1.在生成prepay_id向微信服务器传递参数时<body>不支持中文.需要对其进行转码,否则 ...

  3. Android 支付宝/微信支付结果判断

    微信支付结果码 private static final int PAY_OK = 0; //交易成功 private static final int PAY_ERR = -1; //交易失败 pr ...

  4. JAVA实现微信支付V3

    喜欢的朋友可以关注下,粉丝也缺. 相信很多的码友在项目中都需要接入微信支付,虽说微信支付已成为一个普遍的现象,但是接入的过程中难免会遇到各种各样的坑,这一点支付宝的SDK就做的很好,已经完成的都知道了 ...

  5. Android 接入支付宝支付实现

    接上篇android接入微信支付文章,这篇我们带你来接入支付宝支付服务 简介 首先要说明的是个人感觉接入支付宝比微信简单多了,很轻松的,所以同学们不要紧张~ 当然还是老规矩啦,上来肯定的贴上官网地址, ...

  6. 微信支付 h5

    Android开发要点说明 商户在微信开放平台申请开发应用后,微信开放平台会生成APP的唯一标识APPID.由于需要保证支付安全,需要在开放平台绑定商户应用包名和应用签名,设置好后才能正常发起支付. ...

  7. Android接入支付宝支付实现

    接上篇android接入微信支付文章,这篇我们带你来接入支付宝支付服务 简介 首先要说明的是个人感觉接入支付宝比微信简单多了,很轻松的,所以同学们不要紧张~ 当然还是老规矩啦,上来肯定的贴上官网地址, ...

  8. Android调用微信登陆、分享、支付

    前言:用了微信sdk各种痛苦,感觉比qq sdk调用麻烦多了,回调过于麻烦,还必须要在指定包名下的actvity进行回调,所以我在这里写一篇博客,有这个需求的朋友可以借鉴一下,以后自己别的项目有用到也 ...

  9. Android—基于微信开放平台v3SDK,开发微信支付填坑。

    接触微信支付之前听说过这是一个坑,,,心里已经有了准备...我以为我没准跳坑出不来了,没有想到我填上了,调用成功之后我感觉公司所有的同事都是漂亮的,隔着北京的大雾霾我仿佛看见了太阳~~~好了,装逼结束 ...

随机推荐

  1. 【node】------module.exports&&exports之间的区别------【巷子】

    1.再讲module.exports 与exports之间的区别的时候我们先来回顾一下js里面的引用传递 001.引用传递 var arr = [10,20,30]; var newarr = arr ...

  2. 160225、解决纯js文件国际化的问题

    1.js中国际化 function test(){     alert("<s:text name='jsp.loading'/>"); }   2.最近在做strut ...

  3. PL/SQL Developer登入时候报ORA-12638

    在client安装目录,找到打开sqlnet.ora 在里面找到 SQLNET.AUTHENTICATION_SERVICES= (NTS)将其更改为: SQLNET.AUTHENTICATION_S ...

  4. C#桌面程序设计复习

    GGG //屏幕高度 int ScreenH = 1080; this.Location = new Point(this.Location.X, ScreenH - this.Height - 20 ...

  5. PHP通过curl模拟POST上传文件,5.5之前和之后的区别

    首先先要着重提一下,只要是做和项目有关的开发,首先按把环境中各个服务的版本保持一致,否则出些莫名其妙的错我,让你百爪挠心却不知哪里的问题.这里就要说下curl_setopt($ch, CURLOPT_ ...

  6. Python开发【Tornado】:简介与使用

    Tornado框架 简介: Tornado是使用Python编写的一个强大的.可扩展的Web服务器.它在处理严峻的网络流量时表现得足够强健,但却在创建和编写时有着足够的轻量级,并能够被用在大量的应用和 ...

  7. How Instagram Feeds Work: Celery and RabbitMQ(转)

    原文:http://blogs.vmware.com/vfabric/2013/04/how-instagram-feeds-work-celery-and-rabbitmq.html Instagr ...

  8. git-【四】撤销修改和删除文件操作

    一:撤销修改: 比如我现在在readme.txt文件里面增加一行 内容为555555555555,我们先通过命令查看如下: 在未提交之前,发现添加5555555555555内容有误,所以得马上恢复以前 ...

  9. Windows7系统运行hadoop报Failed to locate the winutils binary in the hadoop binary path错误

    程序运行的过程中,报Failed to locate the winutils binary in the hadoop binary path  Java.io.IOException: Could ...

  10. Python第二弹--------类和对象

    Python中的任何一条数据都是对象.每个对象都由3部分组成:标识.类型和值.对象的标识代表该对象在内存中的存储位置(因此是不可更改的),对象的类型表明它可以拥有数据和值的类型. 创建 Dog 类根据 ...