本文主要讲述一下 android 接入微信支付 SDK 的步骤以及需要注意的一些 Tips。

前期准备

接入微信支付 SDK 前期需要许多前期准备。

微信开放平台登录账号,进入管理中心,创建你的 App 应用,创建应用的包名与签名要与你实际的应用一致。

进入应用详情,获取AppID,以及申请开通微信支付能力。

等待审核通过。

微信商户平台登录账号,在基本信息中获得微信支付商户号。

安装操作证书,然后进入 API 安全设置秘钥,最好使用 UUID 自动生成的,记住这个秘钥。

OK,前期准备做完,下面进行代码接入。

工程接入 SDK

新建应用工程

以 AS 为例,新建工程,注意包名与使用的签名要与微信开放平台申请应用时填写的一致。

引入 libs

将libammsdk.jar放到 libs 文件夹下。

配置 debug、release 的签名文件1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

signingConfigs {

debug {

storeFile file("你的keystore路径")

storePassword "xxx"

keyAlias "xxx"

keyPassword "xxx"

}

release {

storeFile file("你的keystore路径")

storePassword "xxx"

keyAlias "xxx"

keyPassword "xxx"

}

}

这里 debug、realse 我采用的是一样的签名。不论是 debug,还是 release 都能对应上。

AndroidManifest.xml 中配置1

2

3

4

5

6

7

8

9

10

11

12

13

也别忘记加入网络权限。

获取 prepay_id

支付

获取到 prepay_id 之后,调用IWXAPI的sendReq方法即可完成支付。

添加支付成功回调 Activity

添加wxapi的包名,在这个包名下必须要有WXPayEntryActivity这个 Activity,支付成功后会显示此界面。

另外,声明此 Activity 需要添加如下属性:1

2

3

4

android:name=".wxapi.WXPayEntryActivity"

android:exported="true"

android:launchMode="singleTop" />

调用接口相关参数以及返回值参考开发者手册。

Tips

下面说一下接入过程中需要注意的点。

官网下的 demo,第一次支付时,能成功。之后就会一直支付失败。原因是:支付的时候商户唯一订单 ID 是唯一的,测试的时候请不断的更换订单 ID 参数支付。若要继续使用 demo 支付,可以微信清除数据、或者退出登录重新登录。

微信支付返回-1,一般是签名错误。这个签名有 2 种意思:1、Apk 签名文件,debug 与 release 最好使用同样的 keystore;2、参数 MD5 签名生成的 sign。要仔细检查是否正确。

签名、包名必须跟微信开放平台申请的一致.

获取 prepay_id 最好是在服务器完成,由服务器去跟微信服务器交互,客户端不需要参与,以免泄露重要信息。

与微信接口交互时,参数都需要签名。签名方法如下图:

这里重点说一下。参数名 ASCII 码从小到大排序(字典序)

参数名区分大小写,包括 sign。

需要添加商户 key 值,这个 key 即是在前期准备中,我所说的微信商户的那个秘钥。

若接入过程中注意到这些 Tips,一步一步来,那么应该是能支付成功了。

微信支付sdk部署在服务器,android接入微信支付SDK相关推荐

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

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

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

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

  3. Android接入stripe支付

    Android接入stripe支付 阅读之前请大家先了解流程哦(适用于先绑卡后扣款的情况) stripe国际化支付流程: 1.初始化stripe,创建stripe对象: 2.检索后台SetupInte ...

  4. 自动连接 无法连接网络连接服务器,微信提示无法连接到服务器怎么办?微信无法连接服务器怎么解决?...

    本文就微信提示无法连接到服务器怎么办?微信无法连接服务器怎么解决?简单介绍一下解决方法. 1.更换接入点,重新连接网络: 2.单击手机上的Menu键,然后选择"设置": 3.单击& ...

  5. 微信无法连接支付服务器,App接入微信H5支付常见错误及原因

    在App上接入微信H5支付一般都会遇到一些错误.本文讨论了这些错误的解决方案和背后的原因,希望能让读者能少踩些坑. 错误可以分为两类:一是H5支付域名设置错误,二是URL Scheme跳转App错误. ...

  6. Android接入微信SDK之一:发起微信授权登录

    1.重要的事情首先说! 包名.应用签名.app id 三者都必须和在腾讯上申请的一致!!!否则将不能成功. 包名:就是在腾讯上申请的包名 应用签名:使用微信官网提供的<签名生成工具>(这个 ...

  7. android接入微信API相关细节

    细节1 想要接入微信,如接入分享微信功能.跳转小程序功能等:首先需要到微信开放平台申请AppId,如何申请在开放平台上的流程很清楚,就不赘述了 但有个细节就是应用包名签名,这个应用包名签名记得是以ap ...

  8. Android 接入微信扫码库,实现堪比微信的扫码效果

    对于Android的扫码库,我们平时都会使用ZXing或者ZBar来实现. 但是实际情况是,对于一些环境恶劣的情况下,比如 眩光.昏暗.有污渍等情况下,很难被识别. 即使是在普通情况下,扫码的识别速度 ...

  9. android微信支付都需要什么意思,Android开发微信APP支付功能的要点小结

    基本概念 包名值得是你APP的包,在创建工程时候设置的,需要在微信支付平台上面设置. 签名指的是你生成APK时候所用的签名文件的md5,去掉:全部小写,需要在微信支付平台上面设置. 调试阶段,签名文件 ...

  10. 微信公众号开发之服务器验证接入

    微信公众号开发需要将项目运行在带有独立ip地址的主机上,可以选择内网穿透或者云服务器,我用的阿里云的服务器.微信验证接入过程就是微信给你的服务器发送一个get请求,请求中携带signature.tim ...

最新文章

  1. 单独学python能干嘛-学 Python 都用来干嘛的?
  2. java每秒向mysql写一条记录_【Java】mysql一条记录在高并发场景下读写?
  3. Nginx:HTTP框架是如何介入请求
  4. 平行志愿计算机录取顺序,几张图,看懂平行志愿全部录取过程
  5. 【C++基础学习】C++引用参数与指针参数
  6. 水涨船高!造车新势力平均月薪15367元,自动驾驶算法岗年薪可达百万
  7. JBuilder 2005 Enterprise注册破解
  8. 基于PHP的校园竞赛信息网站 毕业设计-附源码221230
  9. Python实现飞翔的小鸟
  10. 微信的服务器 上海,昨下午部分用户无法收发文字信息和登录 微信回应:上海机房服务器发生故障 现已恢复...
  11. 荣耀v40轻奢版和华为nova8的区别 哪个好
  12. Javascript或HTML代码该怎么进行压缩美化?
  13. 工业相机的帧频和行频
  14. 139邮箱smtp地址和端口_快速玩转UNIMIA电子邮箱,不再错过每一封邮件!
  15. 成年期人类大脑功能网络的重叠模块组织
  16. 后台数据管理——firebase和野狗
  17. 网页正文获取易语言代码
  18. 游标cursor,游标循环和记录变量的定义
  19. Linux系统—第13章—网络管理实践1
  20. 实现android按键震动按键声音的机制

热门文章

  1. 世界精神卫生日:不断变化的世界的应用程序
  2. 81个人脸关键点检测
  3. Kubernetes 之 集群二进制部署
  4. cmdb 指南_无限供应商制造商指南
  5. java tire树_谢特——后缀数组+tire 树(示例代码)
  6. python链家数据分析统计服_Python数据分析实战-链家北京二手房价分析
  7. 线性代数(numpy.linalg)
  8. 肠道重要菌属——另枝菌属(Alistipes),调节炎症情绪等的潜力菌
  9. Java项目:医疗管理系统 (java+Springboot+Maven+Mybatis-plus+Vue+Mysql)
  10. springboot 2.X——短信网关使用初体验