【Android】解决微信调起支付接口没反应,调不起来微信的问题
原文:【Android】解决微信调起支付接口没反应,调不起来微信的问题
//#前言
吐槽一下,微信支付的sdk真难用,文档混乱,坑不少。
正文:可能引起这种情况的问题
1. 最不能出现的
你的APPID和商户号写错了。appid是你open.weixin.qq.com里你设置的应用的id。
2. 最可能出现的
你应用的签名弄错了,这里坑比较多。
* 当你直接用AndroidStudio调试,在手机上直接Run的时候,用给的那个签名软件,获取到签名更新到你应用信息的这里:
* 当你在另外一台电脑上调试的时候,你的应用的签名其实是会改变的,所以用那个签名软件,获取到签名后,再次更新到你的应用的信息里。
* 当你的APP开发的差不多了,需要发布(Generate Signed APK)时,先安装到一台手机上,然后获取签名,再次更新到你的应用的信息里。
3. 也有很大可能出现的
其实这个具体是怎么引起的我也不知道,有时候你重启下手机或者清理下微信的缓存,就会发现,竟然能调起来微信了。对,就是这么神奇!!
可能对你有些帮助的
在下面的代码中通过查看request.checkArgs())和api.sendReq(request)的返回值,帮助你定位错误。
我的代码提供参考
public void onClick(View view) {
Unifiedorder unifiedorder = new Unifiedorder();
final SortedMap<Object, Object> parameters = new TreeMap<Object, Object>();
parameters.put("appid", ConstantStrings.APP_ID);
unifiedorder.setAppid(ConstantStrings.APP_ID);
parameters.put("mch_id", ConstantStrings.MCH_ID);
unifiedorder.setMch_id(ConstantStrings.MCH_ID);
//获取随机数的方法
String nonce_str = Utils.getNonce_str();
parameters.put("nonce_str", nonce_str);
unifiedorder.setNonce_str(nonce_str);
parameters.put("body", "weimabang shopping");//not support cn-zh
unifiedorder.setBody("weimabang shopping");
//order_id就是订单号
parameters.put("out_trade_no", "20170405120603");//我这里的订单号只是举个例子,不要一直用这一个,千万不能写死
unifiedorder.setOut_trade_no("20170405120603");//我这里的订单号只是举个例子,不要一直用这一个,千万不能写死
//总金额
parameters.put("total_fee", 1);//单位是分
unifiedorder.setTotal_fee("1");
//ip地址
parameters.put("spbill_create_ip", "123.123.123.123");
unifiedorder.setSpbill_create_ip("123.123.123.123");
//支付成功的回调地址
String notify_url = "http://www.baidu.com";
parameters.put("notify_url", notify_url);
unifiedorder.setNotify_url(notify_url);
parameters.put("trade_type", "APP");
unifiedorder.setTrade_type("APP");
//方法生成的sign值
String sign = Utils.createSign(parameters);
unifiedorder.setSign(sign);
OkHttpUtils.postString().content(XMLHelper.getXMLFromUnifiedorder(unifiedorder))
.url(ConstantStrings.UNIFORMORDERURL).build().execute(new StringCallback() {
@Override
public void onError(Call call, Exception e) {
}
@Override
public void onResponse(Call call, String s) {
//返回值
//Toast.makeText(PayActivity.this, s, Toast.LENGTH_LONG).show();
int startIndex=s.indexOf("prepay_id");
startIndex=s.indexOf("wx",startIndex);
int endIndex=s.indexOf("]",startIndex);
String prepayID=s.substring(startIndex,endIndex);
Log.d("jim","data is "+s);
Log.d("jim","prepay id is "+prepayID);
String nonceStr=Utils.getNonce_str();
String timeStamp=System.currentTimeMillis()/1000+"";
final SortedMap<Object, Object> parameters = new TreeMap<Object, Object>();
parameters.put("appid",ConstantStrings.APP_ID);
parameters.put("partnerid",ConstantStrings.MCH_ID);
parameters.put("prepayid",prepayID);
parameters.put("package","Sign=WXPay");
parameters.put("noncestr",nonceStr);
parameters.put("timestamp",timeStamp);
String sign=Utils.createSign(parameters);
IWXAPI api= WXAPIFactory.createWXAPI(PayActivity.this,ConstantStrings.APP_ID);
PayReq request=new PayReq();
request.appId=ConstantStrings.APP_ID;
request.partnerId = ConstantStrings.MCH_ID;
request.prepayId= prepayID;
request.packageValue = "Sign=WXPay";
request.nonceStr= nonceStr;
request.timeStamp= timeStamp;
request.sign= sign;
Log.d("jim","check args "+request.checkArgs());
Log.d("jim","send return :"+api.sendReq(request));
}
});
}
【Android】解决微信调起支付接口没反应,调不起来微信的问题的更多相关文章
- 微信小程序支付接口之Django后台
本文链接:https://blog.csdn.net/qq_41860162/article/details/89098694Python3-django-微信小程序支付接口调用工具类生成一系列微信官 ...
- 微信支付接口开发之---微信支付之JSSDK(公众号支付)步骤
1.准备 1.1.公众号为服务号,开通微信支付功能 1.2.为了方便调试微信后台的回调URL(必须为外网),我用了nat123软件来做一个映射 1.3.官方微信开发的示例WxP ...
- 黄聪:详解申请微信h5支付方法,开通微信h5网页支付接口(转)
版权声明:图文并茂的微信小程序教程!欢迎转载,请保留作者名字和链接:商业合作请联系子恒老师助理 QQ : 2334512685 https://blog.csdn.net/towtotow/artic ...
- 详解申请微信h5支付方法,开通微信h5网页支付接口(转)
现在大街小巷的商家都在使用微信支付,但是一些商家使用的是个人微信收款,这个虽然很便利,但是如果你想要数据统计汇总,让客户在网络上在线付款,就需要用到微信的h5支付. 微信h5支付 今天子恒老师跟你分享 ...
- ThinkPHP微信扫码支付接口
最近折腾微信扫码支付,看了微信官方文档,找了很多网页,发现和文档/demo不匹配,现在自己算是弄出来了(文件名称有所更改),贴出来分享一下 一.将有用的官方lib文件和使用的相关文件放置到vendor ...
- 如何对接payjs的个人微信扫码支付接口
在众多个人支付接口的产品中,要寻找一个稳定可靠的产品是比较难的,所幸遇到payjs,感觉逼格较高,非常满足自己的品味.推荐大家使用.下边是我在对接payjs的过程中的一些经验和技巧,分享给大家. 一. ...
- 小程序红包开发跳坑记 微信小程序红包接口开发过程中遇到的问题 微信小程序红包开发
现在做小程序的越来越多,商家推广也是一个瓶颈,谁不发点红包,都很难找到人来用你的微信小程序了.于是不管你开发什么小程序功能,你或多或少都要用到小程序来发红包吧. 我们自己之前做公众号发红包,做了两三 ...
- 微信公众号支付(三):页面调用微信支付JS并完成支付
一.调用微信的JS文件 1.首先要绑定[JS接口安全域名],“公众号设置”的“功能设置”中 2.引入JS文件 备注:支持使用 AMD/CMD 标准模块加载方法加载 <script type=&q ...
- 微信支付接口调用问题(android正常,iphone调不起)
转自:http://blog.csdn.net/tt123123/article/details/53897035 碰到的问题 :根据微信提供的示例代码(ASP.NET),配置好一切后, 用andro ...
随机推荐
- jquery-6 jquery属性选择器
jquery-6 jquery属性选择器 一.总结 一句话总结:jquery操作就是选择器加jquery对象的各种方法. 1.大量操作样式用什么方式? 大批量样式通过加类和减类完成 2.jquery中 ...
- mysql创建应用账号
-- 赋予某个库全部权限use mysql;grant all privileges on test_db.* to test_user@'%' identified by 'Aa123456';gr ...
- [Angular] Content Projection with ng-content
For example there is tow form compoennts on the page, and what we want to do is reusing the form com ...
- 十年磨一剑 Delphi再写传奇(不争辩,不解释,十年坚持不懈的努力)
新年伊始,英巴卡迪诺公司(Embarcadero)就在其官网发布了“激动人心的RAD Studio2018年发展规划”公告(见上图).公告中指出,将在于2018年发布10.3.X新版本,新版本兼容Ex ...
- 关系型数据库工作原理-快速缓存(翻译自Coding-Geek文章)
本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...
- 【codeforces 791D】 Bear and Tree Jumps
[题目链接]:http://codeforces.com/contest/791/problem/D [题意] 你可以从树上的节点一次最多走k条边. (称为跳一次); 树为无权树; 然后问你任意两点之 ...
- hive 日志配置/表头配置
1.日志配置,拷贝hive/conf下的hive-log4j2.properties.template为hive-log4j2.properties,修改日志目录,接下来在创建hive/logs,目录 ...
- 微信小程序实例:实现tabs选项卡效果
最近微信应用号是炒的如火如荼,热门满满,但是也可以发现搜索关键词出来,各类网站出现的还都是微信的官方文档解释.正好赶上这个热潮,这几天先把小程序技术文档看了个遍,就直接着手写案例了.很多组件微信内部已 ...
- HDU 4313 Matrix 树形dp
题意: 给定n个点的树,m个黑点 以下n-1行给出边和删除这条边的费用 以下m个黑点的点标[0,n-1] 删除一些边使得随意2个黑点都不连通. 问删除的最小花费. 思路: 树形dp 每一个点有2个状态 ...
- 《大规模Web服务开发技术》
Web 服务开发的心灵鸡汤 周末去上海陪妹子的两天在路途上看完了这本<大规模 Web 服务开发技术>. <大规模 Web 服务开发技术>是日本的 Hetena 团队以夏天举办的 ...