新版Android studio导入微信支付和支付宝官方Demo问题解决大全

最近项目要用到支付宝支付和微信支付,本想使用第三方支付框架ping++或者BeeCloud的,但是由于他们的收费问题,让我望而却步,而且公司给了相应的公钥、私钥和APPID等,所以就用下开放平台的呗。

进去倒腾了半天才发现一堆问题,Oh,我的天。完全不知所云,百度谷歌了一堆,都没找到足够的解决方案。好吧,自己来,这里也就把相关的东西分享给大家,如果有类似问题的可以考虑使用一下,不足的地方大牛就别喷了。

微信开放平台有文档和SDK,大家可以去自己查看下载,火箭:https://open.weixin.qq.com/

支付宝官方的Demo和文档相对简单些,而且说的更清楚些,火箭:https://open.alipay.com/platform/home.htm

还是先看下运行的Demo图示:
首先是微信的

再看看支付宝的

点击支付会跳转到你手机上的支付宝APP,如果手机上没有下载也是可以用的,不过用的不在一个真正的支付宝APP中

但是这么简单的东西,楼主的确智商捉急,都弄了半天。

首先是导入微信的Demo,去官方下载了SimpleDemo后,发现一堆错误,好吧,首先是SDK的问题,这个就不多做赘述了。

然后修改后Try Again   oh,no,又来一个什么鬼。

什么鬼,仔细一看,是drawable里面有不是png的文件命名成了png文件。

好吧,如果你足够的耐心,那么几十张图片,你还是可以直接一张一张的检查后缀的,看看有不是png作为后缀的,另存一下,或者修改你的文件名使其和后缀名一致。

然而程序员的能力应该体现在偷懒的程度上,所以容我偷懒啦。

compileSdkVersion 23 buildToolsVersion "24.0.0" aaptOptions.cruncherEnabled = false aaptOptions.useNewCruncher = false defaultConfig { applicationId "net.sourceforge.simcpux" minSdkVersion 4 targetSdkVersion 23 }

只需要在对应的gradle文件中加上两句话 ,并把值至为false即可。

再次Try again, oh ,no,这次是一大堆错误,什么鬼!看一看日志。

哦,原来是因为6.0以后官方隐藏的HttpClient的相关API,然而大多数导入的代码都还用着这个强大的框架,那怎么弄呢?
好的,只需要再在Gradle文件中添加这样的一句话就好

android { useLibrary 'org.apache.http.legacy' } dependencies { compile files('libs/libammsdk.jar') android { useLibrary 'org.apache.http.legacy' } }

再来看看支付宝的,就简单多了。我遇到的第一个问题是,没有指定APPID,公钥那些东西,好的,这个肯定是得弄得,把自己申请的一系列东西装进去。
运行一看。

嘿嘿,有界面,应该可以吧,点击一下支付。

Oh on,直接崩溃

错也总得有原因哈,看看日志。

空指针异常?进去一看
 sign = URLEncoder.encode(sign, "UTF-8");

是这样一句话出现了问题,这句话什么问题呢。

/** * sign the order info. 对订单信息进行签名 * * @param content * 待签名订单信息 */ private String sign(String content) { return SignUtils.sign(content, RSA_PRIVATE); }

这个方法的问题,这样返回的是一个空的。
 再进去一看

public static String sign(String content, String privateKey) { try { PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec( Base64.decode(privateKey)); KeyFactory keyf = KeyFactory.getInstance(ALGORITHM); PrivateKey priKey = keyf.generatePrivate(priPKCS8); java.security.Signature signature = java.security.Signature .getInstance(SIGN_ALGORITHMS); signature.initSign(priKey); signature.update(content.getBytes(DEFAULT_CHARSET)); byte[] signed = signature.sign(); return Base64.encode(signed); } catch (Exception e) { e.printStackTrace(); } return null; }

是这样的一串代码,原来这个方法是把私钥转换成应该有的格式,而我公司给的意见转换好了,好吧。
 那直接返回就成了呗

/** * sign the order info. 对订单信息进行签名 * * @param content * 待签名订单信息 */ private String sign(String content) { // return SignUtils.sign(content, RSA_PRIVATE); return RSA_PRIVATE; }

修改一下,再次运行。Oh yeah,成功!
今天就讲这么多,有啥不懂的,还是运用万能的百度吧!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

时间: 2024-10-14 17:58:01

新版Android studio导入微信支付和支付宝官方Demo问题解决大全的相关文章

新版Android studio导入微信支付和支付宝官方Demo问题解决大全_Android

最近项目要用到支付宝支付和微信支付,本想使用第三方支付框架ping++或者BeeCloud的,但是由于他们的收费问题,让我望而却步,而且公司给了相应的公钥.私钥和APPID等,所以就用下开放平台的呗.  进去倒腾了半天才发现一堆问题,Oh,我的天.完全不知所云,百度谷歌了一堆,都没找到足够的解决方案.好吧,自己来,这里也就把相关的东西分享给大家,如果有类似问题的可以考虑使用一下,不足的地方大牛就别喷了.  微信开放平台有文档和SDK,大家可以去自己查看下载,火箭:https://open.wei

android studio 导入新版的demo 运行时出错

问题描述 android studio 导入新版的demo 运行时出错:easeUIDemo:transformClassesWithInstantRunVerifierForDebug:easeUIDemo:transformClassesWithInstantRunForDebugIncrementalSupportVisitor Visiting com/easemob/chatuidemo/BuildConfigIncrementalSupportVisitor Visiting com

微信支付与支付宝钱包的关键差异在哪里

本文主角:微信支付和支付宝钱包. 配角:微博支付.平安壹钱包.百度理财和网易理财. 本文结论:微信支付从流量切入拼支付流程,大而全的支付宝钱包无法舍弃存量拼流量,因此拉出微博支付专精流量作为牵制.支付宝需要确保支付宝钱包的绝对优势才算赢,微信支付只要保持对支付宝的竞争压力就算小胜.除了壹钱包之外,打酱油的产品无法影响这两大巨头的竞争. 在两个月之前(2013年10月29日),我在虎嗅网发表了一篇名为<被严重低估的微信支付>的分析文章,当时虎嗅网李岷要求我增加一些关于微信支付的使用场景设想,潜台

android studio导入eclipse工程

问题描述 android studio导入eclipse工程 我的eclipse工程有多个依赖包,是用android studio直接导入的,然后清单文件报错 alipay_lib:processDebugManifest求解 解决方案 这是阿里支付的库 参考:http://blog.csdn.net/hzqhbc/article/details/40080173

微信支付和支付宝钱包

本文主角:微信支付和支付宝钱包. 配角:微博支付.平安壹钱包.百度理财和网易理财. 本文结论:微信支付从流量切入拼支付流程,大而全的支付宝钱包无法舍弃存量拼流量,因此拉出微博支付专精流量作为牵制.支付宝需要确保支付宝钱包的绝对优势才算赢,微信支付只要保持对支付宝的竞争压力就算小胜.除了壹钱包之外,打酱油的产品无法影响这两大巨头的竞争. 在两个月之前(2013年10月29日),我发表了一篇名为<被严重低估的微信支付>的分析文章,当时虎嗅网李岷要求我增加一些关于微信支付的使用场景设想,潜台词是:你

Android 高仿微信支付数字键盘功能_Android

现在很多app的支付.输入密码功能,都已经开始使用自定义数字键盘,不仅更加方便.其效果着实精致. 下面带着大家学习下,如何高仿微信的数字键盘,可以拿来直接用在自身的项目中. 先看下效果图: 1. 自定义布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android studio导入时出现HTTP/1.1 400 Bad Request错误

问题描述 android studio导入时出现HTTP/1.1 400 Bad Request错误 导入时就出现这个问题,然后没有办法运行,代码是从github直接下的,不知道有没有什么要改的地方,求大神帮忙 解决方案 HTTP/1.1 400 Bad Request 解决方案二: 错误的全程是这样Error:Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Request"

android studio 导入本地gradle包出错

问题描述 android studio 导入本地gradle包出错 网上的方法用了好几个,一直无法解决问题,配置了GRADLE-HOME,Path.就是会报以下错误.希望大神指点一二.是windows8.1系统. 解决方案 我也遇到过这个问题,但也没解决,最终将studio卸载了,重新安装了一下studio和gradle

android studio 问题-android studio导入新目后出错

问题描述 android studio导入新目后出错 Error:Cause: failed to find target with hash string 'android-21' in: E:wcxAndroidsdkOpen Android SDK Manager 解决方案 sdk目录下的platform文件夹下有android-21吗 解决方案二: 不同的按钮 设置 不同的点击事件监听就好了 bt1.setonclicklistener(new onclicklistener{ ...