你的位置:首页 > 操作系统

[操作系统]Android—基于微信开放平台v3SDK,开发微信支付填坑。


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

开发准备:

1.在微信开放平台申请账号

2.成功后创建应用,就是填一些看似很官方很正经的资料了。。。(说审核7天左右,没有意外的情况下你的app第二天就审核成功了是不是很开心,有了appid,是不是就可以调用微   信支付了????-------想多了,真的)

3.微信支付是需要额外申请的:需要资料审核,账户验证,协议签署等步骤,(我记得,,资料审核要填写的东西好多,,,好多,,,账户验证就是你审核成功后微信会发送邮件到你   注册时登记的邮箱账号,其中含有随机金额用于账户验证,协议签署,略,太简单)一定要好好阅读你邮件的任何信息,因为有的细节错了,,,你可能填坑很久。。。。。。

正式开发阶段:

问题1:

调用官方的SDK发现只能成功的调起一次微信,再次支付的时候怎么也调用不起来了

解决:

似乎不是什么正经方法:在手机设置中管理应用程序,清除微信数据,缓存,,再来一遍,绝对可以调起来(当然还是只是一次。。。。)

继续:

我认为要用微信支付嘛,,就只看了调用支付接口的文档:

后来发现需要的参数prepayid是怎么也找不到啊,,后来才发现这个prepayid是先调用”统一下单“这个接口时候温馨反过来的东西,但是官方的SDK中并没有统一下单的代码。坑吗???

所以要先看统一下单文档了   https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1

1.使用自己的APP调用的时候把官网down下来的SDK中WXPayEntryActivity拷贝到自己的项目,所在包的名字最后一定是.wxapi(我连包一起拷了。。。。)

2.在项目清单文件中填写:

 

 3.SDK中的AppRegister拷贝下来,,,里面换成你自己的appid,然后在项目清单中也注册一下。

 

 

4.重点来了,,就是你APP要调微信支付的activity,我这还叫PayActivity

 要调起微信支付页面,要在这个activity中,将你的app注册到微信

 

接下来先调用统一下单获取prepayid,参数,微信人家要

 

好了调用的时候把这个方法的返回值当参数传,,等待微信返回success吧!。。

 我遇见的错误:签名错误

我的原因是大意了 ConfigUtil.NOTIFY_URL这个参数写的空字符串

还有是因为debug版运行的,没有打包运行

返回成功之后,可以调用支付接口了

 

不要忘了这一步去跳转界面,,,,,

没有跳转到微信支付可能是你由运行的debug版本,,,,没有打包。。。。。

下面是我的PayActivity完整代码:

package com.example.taijiapp.ui;import java.io.StringReader;import java.net.InetAddress;import java.net.NetworkInterface;import java.net.SocketException;import java.util.Enumeration;import java.util.HashMap;import java.util.LinkedList;import java.util.List;import java.util.Map;import java.util.Random;import org.apache.http.NameValuePair;import org.apache.http.message.BasicNameValuePair;import org.

里面没有的类,,,,呐: http://download.csdn.net/detail/meijuanyou/9571223  自己下载一下拷贝一下。。。

参考资料    http://blog.csdn.net/meijuanyou/article/details/51863720

 备忘,希望能给大家带来帮助。。。