微信公众号开发(一) [TODO]

1. 自定义菜单栏

2.  获取access_token

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx528a5c53cc1121bc&secret=d4624c36b6795d1d99dcf0547af5443d

{"access_token":"Lv-H7LyuMN91GMMa4xkbZKLXF-2RrGW8D_8odWi-YqKD-3emzuwFyrhFu3te8L4MVeBQb9rciDPNbfFKMjQSvfjUdElOD4e-04pLwgTQ1vhhaO8HH3tPLSkWwPgTDaiEKWNfAGAFRI","expires_in":7200}

 

 

 

参考:

[1]http://www.cnblogs.com/zyw-205520/p/4733004.html

chrome : Disallowed Key Characters

1. 登录微信支付网站(https://pay.weixin.qq.com/index.php/home/login?return_url=/),网页上只显示  Disallowed Key Characters

 

VN6LU85AU{`AIG6]RB`[CXL

解决:chrome下可以很方便的删除某个网站的cookie,所以哪个网站出现这个问题,直接去设置里的“内容设置”
“所有cookie和网站数据”,搜索那个网站的名字,把跟它有关的cookies都删掉,就可以打开了

 

mac : 环境变量

1. gradle 环境变量

 

$ vim .bash_profile 
export GRADLE_HOME=/Applications/gradle-2.3;
export PATH=$PATH:$GRADLE_HOME/bin
$ source .bash_profile
$ echo $GRADLE_HOME 

或者:
$ gradle -version

 

参考:

[1] http://blog.csdn.net/a396901990/article/details/43927409

android:gradle 编译

1.  gradle clean

2. gradle build

3. 签名

android {
    ...
    signingConfigs {
        release {
            storeFile file("release.keystore")
            storePassword "******"
            keyAlias "******"
            keyPassword "******"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}

4. 混淆
buildTypes{
   release {
   signingConfig  signingConfigs.myConfig
     runProguard true
     proguardFile 'proguard-android.txt'
   }
}

5. zipalign 

buildTypes {

     release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        zipAlignEnabled true
    }
}

note :Older versions use zipAlign, instead of zipAlignEnabled

6. 
release {
                // 不显示Log
                buildConfigField "boolean", "LOG_DEBUG", "false"
                //混淆
                minifyEnabled true
                //Zipalign优化
                zipAlignEnabled true

                // 移除无用的resource文件
                shrinkResources true
                //前一部分代表系统默认的android程序的混淆文件,该文件已经包含了基本的混淆声明
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'
                //签名
                signingConfig signingConfigs.relealse
            }

 7. 多渠道包 [TODO]
  • ./gradlew assembleDebug
  • ./gradlew assembleRelease

参考:

[1] http://www.cnblogs.com/youxilua/archive/2013/05/20/3087935.html [详细]

[2]http://www.jianshu.com/p/0202845db617 [混淆]

[3]http://coolshell.info/blog/2015/03/android-studio-prefrence.html [ 详细 ]

gradler : Execution failed for task ‘:app:mergeDebugResources’.

1. 使用 gradle : 1.5.0 进行编译微信支付的demo , 一直出现错误  

dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'
    }


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
>Some file crunching failed, see logs for details

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

2. google 查了各种资料,还是不行,最后将 classpath 设为1.3.0 就ok 了
dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
    }

结论: 不要迷恋最新版本,注意稳定性


3. 解决方法一:
如果有提示错误的具体图片名,那直接修改就可以了

解决方法二:
在 build.gradle ,加上这两句:
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false

如:

android {

compileSdkVersion 19
buildToolsVersion “23.0.1”

aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false

defaultConfig {

minSdkVersion 10
targetSdkVersion 19

}

 

参考:https://segmentfault.com/q/1010000002634455

移动支付: 微信支付 (一)

keystore

问:在官网下载的微信支付demo, 第一次可以支付成功,以后点击全是返回 “-1”  ?

答:这是签名不正确造成的,官方下载的demo里,有包含debug.keystore,

在编译版本的时候,需要使用该签名

------------------------------------

问: 微信支付sign值计算

答:官方说明 https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=4_3

------------------------------------

问: 微信支付sign值计算[java版]

答:参考链接[6]

-----------------------------------

问:微信支付关键字段说明

答:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=9_12

公众账号ID appid String(32) wx8888888888888888 微信分配的公众账号ID
商户号 partnerid String(32) 1900000109 微信支付分配的商户号
预支付交易会话ID prepayid String(32) WX1217752501201407033233368018 微信返回的支付交易会话ID
扩展字段 package String(128) Sign=WXPay 暂填写固定值Sign=WXPay
随机字符串 noncestr String(32) 5K8264ILTKCH16CQ2502SI8ZNMTM67VS 随机字符串,不长于32位。推荐随机数生成算法
时间戳 timestamp String(10) 1412000000 时间戳,请见接口规则-参数规定
签名 sign String(32) C380BEC2BFD727A4B6845133519F3AD6 签名,详见签名生成算法

------------------------------------

问: 微信支付 notify_url[TODO]

答:在生成订单界面有这个字段

 

 

参考

[1] : http://blog.csdn.net/janice0529/article/details/38051987

【2】http://blog.csdn.net/jdsjlzx/article/details/47422279 【详细】

【3】http://www.mumuxi.me/dai-ma-shi-jie/2015-08-05

【4】http://blog.csdn.net/janice0529/article/details/38051987

【5】http://www.2cto.com/weixin/201505/400447.html

[6]http://blog.csdn.net/xb12369/article/details/45716665  [有用]