微信支付虽说要300审核费,但是提交的材料相比较于支付宝还是挺少的!
使用微信支付的接口,首先在微信开放平台上注册,申请成为开发者(需要300元/年),然后微信会给你发送邮件内容为商户的登录账号和密码(自己保存一下,看过后可能会自动删除),如果仅仅是使用微信支付,在申请应用时你需要输入应用的
应用签名:(即32位MD5,注意一定要与软件使用的key.store保持一致)
包名:(使用微信支付的APP包名),根据微信的提示,进行下一步
你还需要准备的材料有 APP_ID(你申请应用时会给你 AppID和AppSecret,而APPSecret我在使用时没有用到 )、MCH_ID(分给你的商户ID)和API_KEY(商户密钥,这个东西需要你登录商户平台自己设置),如果你得到了这三样东西你就已经成功了一半。下载微信提供的android demo,在eclipse中打开,下面非常重要,你需要修改的东西有:
(1)Constants.java中的三个常量,对应我们上面提到过的三个材料
(2)AndroidManifest.xml 中的<data android:scheme="****"/>把他修改为Constants.java中APP_ID所代表的常量。
(3)申请应用时的应用签名和包名保持一致。比如微信提供的demo的包名为com.weixin.paydemo,如果我想用它作为测试demo,则申请应用的包名必须为com.weixin.paydemo;对于应用签名,使用eclipse导出apk格式的文件时,我新建了一个key.store,得到了32位MD5字符串,修改应用签名为这个32位MD5字符串。
在集成到自己做的APP中时,由于微信给的demo分为三个按钮来实现,获取prepay_id、组成支付参数和调用微信支付三个部分,对于第一个部分,demo使用的
GetPrepayIdTask getPrepayId = new GetPrepayIdTask();
getPrepayId.execute();
来获取prepayId,这是异步的,可以在主线程中使用得到prepay_id,对于支付参数demo提供的方法为genPayReq();对于调用微信支付demo提供的为sendPayReq();后两步可在自己做的APP中使用一个button来控制,注意一点:如果三者都放到一个button中控制,得到的prepay_id为空,程序会报错!自己整理了好久终于弄出来了,感觉好有成就感。。。。
针对支付成功后不能回调函数?
可以弹出微信支付的界面,但是支付之后没有进入回调的Activity:WXPayEntryActivity ?
微信开放平台有个 不成文的规定(文档里没有说明),就是回调的Activity必须是:你的包名(微信demo里是:net.sourceforge.simcpux)+.wxapi.WXPayEntryActivity.java
其他的接口回调的Activity必须是:你的包名(微信demo里是:net.sourceforge.simcpux)+.wxapi.WXEntryActivity.java
测试过程中肯定会遇见其他的问题,多问多查多搜!肯定能解决...语言组织的不好,希望对你有所帮助...