微信支付的深坑

相信微信支付的集成大家都没问题(下面会贴出来步骤)...很简单 根据官方给的demo和步骤相信大家都可以集成出来....那今天我们我就给大家分享下我做微信支付的时候遇见的坑


1.首先大家都知道,提交订单的时候给的参数...这个时候.看见demo的参数时候我就手贱的想多给参数..结果....一直提交...然而都没有成功..没有换回appid..原因就是因为..参数没有转换..具体我也没查..哈哈...大概知道试着的问题就有眉目了


2.调用微信支付的时候会回调一个类

...对..你没有看错...就是这个货特么坑了我一下午...官方是说了..这个类必须要在wxapi包下...但是官方给的demo是Eplise项目的..用AS的帅哥美女们要注意了....我一开始是在java下随便的创建的一个包后面是wxapi这个类在包下...结果一直回调不成功....后来...特么的...好了 说解决办法...就是在清单文件中

在清单文件的包下来个wxapi把这个类放到下面....


.......问题说完了..给大家写个步骤.凑下字..哈哈..

.


1.   注册开放平台帐号成为微信开放平台开发者

地址: https://open.weixin.qq.com/

 使用公司管理者/高层帐号登录微信开放平台,进入“账号中心”,进行开发者资质认证,需要填写公司资料,包括但不限于,公司注册号,公司营业执照,公司对外办公电话,公司对公银行卡信息(卡号,发卡行)。审核时间为一周左右。 
备注:因为从2015年10月1日起,国家实行三证(组织机构代码证,企业营业执照,税务登记证)合一,所以组织机构代码处填写-工商执照注册号,同样,组织机构代码证,上传-企业工商营业执照。 
备注2:进行开发者资质认证需要支付300元人名币/年,只有具备开发者资质认证的开发者才能够使用app支付,授权登录等接口。

2.申请APP_ID/APP_KEY 
每个应用/游戏要调用微信的接口都需要有一个微信标志,这个唯一标志通常成为APP_ID或者APP_KEY,各开放平台差异不大 
进入管理中心,创建移动应用,每个开发者具有10个应用的创建机会,好在创建的应用可以随时删除。
申请appid需要填写应用信息:应用名称,包名,签名(keystore的md5值去分号小写),icon(28*28 & 108*108),app下载地址等信息,即可分配到一个appid。 
备注:测试支付时,务必使用申请时填写的keystore文件签名,包名也需要核对清楚,必然无法调起支付,返回-1错误码。

3.申请支付能力 
在管理中心,查看需要集成支付能力的app,找到“微信支付”一栏,点击右侧“申请开通”,填写一些企业信息后等待审核,审核时间为一周左右,审核通过后,会得到一个企业商户号及密码,对公银行卡中将收到几分钱,进入商户平台,输入收到的金钱金额以验证。验证通过后即可开始集成支付调用。在这之前,调用支付接口是无法完成支付的。

4.从微信支付商户平台下载微信支付的Demo

 

 

https://pay.weixin.qq.com/wiki/doc/api/download/SDKSample_Android_v3_pay.zip

 

Demosrc 目录如下:

 

5、将微信支付Demo的.java文件放到我们自己的项目中。这里有一个关键点必须要注意,否则会造成调起微信支付后无法回到支付结果界面, 那就是WXPayEntryActivity.java文件必须放到你工程的 包名.wxapi下,假设你的包名是 com.exemplary.demo 那么WXPayEntryActivity.java文件就应该放到com.exemplary.demo.wxapi 下。**PayActivity.java文件则可以放到对应的Activity中,其余的.java文件则可以随意放置,然后修改一些小细节即可。

 

6、修改Constants.java 中的三个参数,然后在AndroidManifest.xml中加入 
1)、对应的权限:

 

<uses-permission android:name="android.permission.INTERNET" />

    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

 

2)、PayActivity:

<activityandroid:name="PayActivity的全路径"
   android:label="@string/app_name"
    android:exported="true"
   android:launchMode="singleTop">
    <!--
这个intent-filter不要忘了-->
    <intent-filter>
    <actionandroid:name="android.intent.action.VIEW"/><categoryandroid:name="android.intent.category.DEFAULT"/><dataandroid:scheme="对应的appid(APP_ID)"/>
 </intent-filter></activity>1234567891011

<!-- 微信支付 --><receiver
     android:name="AppRegister
的全路径"><intent-filter><actionandroid:name="com.tencent.mm.plugin.openapi.Intent.ACTION_REFRESH_WXAPP"/></intent-filter></receiver>1234567

 

7.在进行测试时我们必须先生成一个程序的keystore文件,然后再按下面的步骤进行才可以顺利地调起微信支付。(这一步在微信支付的开发文档中并没有进行说明)如图所示,生成一个有效的keystore文件的步骤: 

 




然后将生成的apk文件安装到我们的测试机上,如果我们想通过运行项目把程序安装到我们的测试机上也能调起微信支付,则需按下图所示操作: 

将APP 安装到我们的测试机中后,再从 微信支付 | 商户平台中下载应用签名工具,将其安装到测试机上,下面图中有下载地址:






 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值