Android开发 --微信支付开发(转载!)(开发工具:Eclipse)
Android_APP 微信支付接口开发
日期:2015-10-06 12:47:33 作者: 来源: 人气:3549
1、首先说一下我们在开发微信支付接口的时候遇到最多和最疑惑的问题,那就是明明 appid、商户号、API密钥 都对照了好几遍确实是和自己的一样,并且也没有在Log日志中出现签名错误等信息,却始终调不起微信支付,或是直接回到支付结果后的界面并提示 “微信支付结果:null;code=-1”。这就是微信支付中的一个深坑之处(为什么说这是深坑之处呢?会在下面特别说明)。
2、下面就教大家如何跳出这个深坑,首先先让图来说话:
3、接下来进行微信支付的接入,本文档重在实现调起微信支付,其中的 sign签名如何生成不进行详细讲解,可以自行上网百度。
微信支付开发步骤:
一、首先去申请开通微信支付功能(亦可从网上找到申请开通的方法),开通后会收到下图所示的一封邮件。
二、从微信支付商户平台下载微信支付的Demo
其Demo的src 目录如下:
四、将微信支付Demo的.java文件放到我们自己的项目中。**这里有一个关键点必须要注意,否则会造成调起微信支付后无法回到支付结果界面, 那就是WXPayEntryActivity.java文件必须放到你工程的 包名.wxapi下,假设你的包名是 com.exemplary.demo 那么WXPayEntryActivity.java文件就应该放到com.exemplary.demo.wxapi 下。**PayActivity.java 文件则可以放到对应的Activity中,其余的.java文件则可以随意放置,然后修改一些小细节即可。
五、修改Constants.java 中的三个参数,然后在AndroidManifest.xml中加入
1)、对应的权限:
<!-- 微信支付 --><uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>12
2)、PayActivity:
<activity android:name="PayActivity的全路径"
android:label="@string/app_name"
android:exported="true"
android:launchMode="singleTop">
<!--这个intent-filter不要忘了-->
<intent-filter>
<action android:name="android.intent.action.VIEW"/><category android:name="android.intent.category.DEFAULT"/><data android:scheme="对应的appid(APP_ID)"/>
</intent-filter></activity>1234567891011
<!-- 微信支付 --><receiver
android:name="AppRegister的全路径"><intent-filter><action android:name="com.tencent.mm.plugin.openapi.Intent.ACTION_REFRESH_WXAPP" /></intent-filter></receiver>1234567
六、有些开发者以为到这里就完成了,然后运行项目进行测试,可得到的结果是调不起微信支付的API。
注意:这一步是坑点之一。在进行测试时我们必须先生成一个程序的keystore文件,然后再按下面的步骤进行才可以顺利地调起微信支付。(这一步在微信支付的开发文档中并没有进行说明)如图所示,生成一个有效的keystore文件的步骤:
然后将生成的apk文件安装到我们的测试机上,如果我们想通过运行项目把程序安装到我们的测试机上也能调起微信支付,则需按下图所示操作:
七、将APP 安装到我们的测试机中后,再从 微信支付 | 商户平台中下载应用签名工具,将其安装到测试机上,下面是下载地址
然后如图所示:
然后按照微信支付中的开发文档走:
八、有的开发者会在这一步走完后就立即测试支付,结果是没能调起微信支付API,这个原因有可能是设置并保存了应用签名后微信那边的服务器没能那么快地做出处理,在等待了30秒后再进行测试则就可以成功调起微信支付了。
Android开发 --微信支付开发(转载!)(开发工具:Eclipse)的更多相关文章
- [5] 微信公众号开发 - 微信支付功能开发(网页JSAPI调用)
1.微信支付的流程 如下三张手机截图,我们在微信网页端看到的支付,表面上看到的是 "点击支付按钮 - 弹出支付框 - 支付成功后出现提示页面",实际上的核心处理过程是: 点击支付按 ...
- python开发微信支付学习记录(转)
前言 微信支付是由微信及财付通联合推出的移动支付创新产品.如今,随着微信支付的全面开放,相关需求也越来越多,很多开发人员进行微信支付开发及商家申请微信支付时,面临着诸多疑惑. 要想开发顺利进行,首先要 ...
- SpringBoot项目后台对接微信支付开发——微信统一下单接口开发
开始没找到微信支付的sdk.自己根据官方给的接口文档纯手写,各种xml转JSON,JSON转xml,加密解密,签名....整个人都是崩溃的 开发的第三天,发现有官方的sdk.心情一下子豁然开朗,整个人 ...
- Android—基于微信开放平台v3SDK,开发微信支付填坑。
接触微信支付之前听说过这是一个坑,,,心里已经有了准备...我以为我没准跳坑出不来了,没有想到我填上了,调用成功之后我感觉公司所有的同事都是漂亮的,隔着北京的大雾霾我仿佛看见了太阳~~~好了,装逼结束 ...
- JAVA开发微信支付-公众号支付/微信浏览器支付(JSAPI)
写这篇文章的目的有2个,一是自己的项目刚开发完微信支付功能,趁热回个炉温习一下,二也是帮助像我这样对微信支付不熟悉,反复看了多天文档还是一知半解,原理都没摸清,更不要说实现了.本以为网上的微信开发教程 ...
- IOS开发--微信支付
前言:下面介绍微信支付的开发流程的细节,图文并茂,你可以按照我的随笔流程过一遍代码.包你也学会了微信支付.而且支付也是面试常问的内容. 正文: 1.首先在开始使用微信支付之前,有一些东西是开发者必须要 ...
- 微信支付.NET版开发总结(JS API),好多坑,适当精简
前2天,做一个手机网页的微信支付的项目,费了好些周折,记录一下.接下来,按照开发步骤,细数一下,我遇到的那些坑. [坑1]官方邮件中下载的demo只有PHP版本,其他版本没有给链接.可能让人误以为只有 ...
- 微信支付.NET版开发总结(JS API),好多坑,适当精简。
前2天,做一个手机网页的微信支付的项目,费了好些周折,记录一下.接下来,按照开发步骤,细数一下,我遇到的那些坑. [坑1]官方邮件中下载的demo只有PHP版本,其他版本没有给链接.可能让人误以为只有 ...
- 一枚招聘信息——微信支付web前端开发工程师【已招到】
已招到 工作地点: 深圳 职位类别: 技术类 招聘人数: 1人 工作职责: 负责微信支付h5应用产品的前端开发:负责微信支付营销活动,h5游戏的开发:负责微信支付内部平台的开发与日常维护 工作要求: ...
随机推荐
- 安卓天天练练(四)drawable state 属性
今天又作茧自缚(item 写成 itme ╮(╯▽╰)╭ elipse还自动闭合了标签,来回查查查看报错,为啥点击无效呢!) 真欠抽,怪不得上班地铁上被个sb踢到脚趾头(目测有可能是同家公司的..同站 ...
- Array.asList()注意
api: public static <T> List<T> asList(T... a) 返回一个受指定数组支持的固定大小的列表.(对返回列表的更改会“直接写”到数组.)此方 ...
- css的定位机制
牛腩新闻发不系统中遇到了CSS(Cascading style sheets),第一次接触,比较陌生还!因为CSS很多关于元素定位的问题,并且很多情况下元素的位置以像素精度计.一个不小心就很头疼,为此 ...
- 14.5.5.1 An InnoDB Deadlock Example 一个InnoDB 死锁实例
14.5.5.1 An InnoDB Deadlock Example 一个InnoDB 死锁实例 下面的例子演示了一个错误可以发生当一个lock 请求会导致一个死锁,例子设计2个客户端,A和B: J ...
- 【HDOJ】2782 The Worm Turns
DFS. /* 2782 */ #include <iostream> #include <queue> #include <cstdio> #include &l ...
- linux查看端口号是否被占用
etstat -anp |grep 端口号 root用户执行 netstat -ntupl n表示不查询dns t表示tcp协议 u表示udp协议 p表示查询占用的程序 l表示查询正在监听的程序 查看 ...
- 网络流CodeForces. Original 589F:Gourmet and Banquet
A gourmet came into the banquet hall, where the cooks suggested n dishes for guests. The gourmet kno ...
- 实例讲解MSSQL日期相加减比大小函数 转
1. 当前系统日期.时间select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值例如:向日期加上2天select dateadd(day ...
- HDOJ 1995 汉诺塔V
Problem Description 用1,2,-,n表示n个盘子,称为1号盘,2号盘,-.号数大盘子就大.经典的汉诺塔问 题经常作为一个递归的经典例题存在.可能有人并不知道汉诺塔问题的典故.汉诺塔 ...
- OpenOffice 服务开机启动
1.准备以下软件 OpenOffice3.0,Windows Resource Kit Tools 分别默认安装 2.打开Windows Resource Kit Tools -> Comman ...