怎么既签名微信支付签名keykeystore又签名支付宝key

我这打包apk安装到手机后重新获取签名,但是为啥还是调不起支付呢,我这不打包直接运行项目就可以支付成功,这是为啥
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!> apk keystore签名
命令行生成keystore
dos下进入JDK的bin目录
运行如下命令:
keytool -genkey -alias android keystore -keya
一、微信的授权登录、分享、支付:(项目上线的时候记得把keystore换成记得打包的哦)
1)SHA1是Android签名文件keystore获取的,一个文件一个SHA1(调试版和发布版可共用)
keytool -v
AliasAdapter mA
生成密钥对的tton
Button mGenerateB
一般情况,生成证书会用到java的keytool生成自签名证书,用在tomcat、applet等场合,生成的证
AndroidStudio配置gradle,让App自动签名。
原文链接:http:
blog csdn net luoweifu article details
由于项目的需要,要安装一个VS2013
Android Studio系列-签名打包
对指定信息使用哈希算法,得到一个固定长度的信息摘要,然后再使用私钥 (注意必须是
Android编译系统分析系列文章已经是第六篇了,随着时间的流逝,随着工作中接触编译系统
公司产品和项目总算预期提前完成,我们便马不停蹄地将Eclipse更换成Android的开发工具,将
iis 支持apk json ipa下载
Android apk反编译:Smali语法入门教程。0x01 smali生成:使用apktool反编译apk后,会在反编译工程
ok,到此应该对于webp都有了一定的认识,也应该大致了解了在Android使用webp的兼容性的问题
在开发的过程中要注意一下debug keystore。就是Window->Preferences->Android->Build里面。
这里,我们
1、全局配置jdk1 8 0_45
bin(或cd进入bin目录)
2、keytool -v -list -keystore 你的keystore路径
1,导入微信的libs包
2,测试时使用weixinDemo中的debug_
3,需要注意应用
上一篇我们讲了多渠道打包 其中我们用到了签名文件在eclipse时 keystore在Android Studio中就是 j
1、如何对APK签名
(1)、创建数字证书,android123 keystore
keytool -genkey -alias android123 keystore -
本文章围绕着Android的包管理机制,着重分析Android的包格式(包括签名),以及应用程序的
iOS 开发 code sign 代码签名深入剖析
代码签名授权
Code Signin
客户端:RSA用公钥加密之后,需要对加密后的数据在进行Base64加密, 以便在HTTP协议之间传
在Blackhat USA 2016上,来自Deep Instinct的安全研究人员呈现了一个名为《Certificate Bypass: Hiding and
qq男生表白个性签名_男生个性签名_qq个性签名大全
最近项目准备尝试使用webp来缩小包的体积,于是抽空对相关知识进行了调研和学习。至于
在Android开发中采用动态加载技术,可以达到不安装新的APK就升级APP功能的目的,可以用来
地球人都知道,android安装包是apk后缀的,普通用户根本不知道什么是dex文件,那什么是dex
在安卓平台上, 你可以使用apk安装一个应用或者通过浏览器打开一个web应用。如果选择了
在apk中,有时候需要root权限,例如通过apk更新系统库等system的文件等,避免升级固件,或
热门文章热门标签
08月27日 |
08月27日 |
08月27日 |
08月27日 |
08月27日 |
08月27日 |
08月27日 |
08月27日 |在hbuider下的app 调用支付接口
支付宝功能申请
登录支付宝账号,签约申请&移动快捷支付&功能,操作流程参考:
获取PID,参考教程:
生成密钥(公钥和私钥),并提交到支付宝,参考教程:
服务器生成订单示例(PHP)参考开源示例代码
微信支付功能申请
使用微信支付功能需到微信开放平台申请移动应用并开通支付功能申请应用后可以获取AppID和AppSecret值。
开通支付功能后可获取支付业务服务器配置数据PARTNER:财付通商户号PARTNER_KEY:财付通密钥PAYSIGNKEY:支付签名密钥
参考开源示例代码
$result = array(
'appid' =& $appid,
'noncestr'=&$parameters['nonce_str'],
'package'=&'Sign=WXPay',
'partnerid'=&$mch_id,
'prepayid'=&$prepay_id,
'timestamp'=& time(),
// 重新签名
$result['sign'] = $this-&getSign($result, $key);
调起启用支付宝或微信 plus.payment.request(pay[id].order,function(result)
微信遇到的问题:&启动微信(需要打包测试,其中app签名确保和微信签名对应),确保获取order的值是否正确,其中,注意sigh=两次重新生成,格式为order
字段名变量名类型必填示例值描述
String(32)
微信开放平台审核通过的应用APPID
String(32)
微信支付分配的商户号
预支付交易会话ID
String(32)
微信返回的支付交易会话ID
String(128)
Sign=WXPay
暂填写固定值Sign=WXPay
随机字符串
String(32)
5K8264ILTKCH16CQ2502SI8ZNMTM67VS
随机字符串,不长于32位。推荐
String(10)
时间戳,请见
String(32)
C380BEC2BFD727A4BF3AD6
签名,详见
支付宝:主要密钥是否正确 出现al59错误-&确保每一个值都不为空
其中order格式
"service=\"mobile.securitypay.pay\"&partner=\"7871\"&_input_charset=\"UTF-8\"&out_trade_no=\"99\"&subject=\"余额充值\"&payment_type=\"1\"&seller_id=\"\"&total_fee=\"0\"&body=\"\"&it_b_pay=\"1d\"&notify_url=\"http%3A%2F%%2Fopenapi%2Fectools_payment%2Fparse%2Fectools_payment_plugin_alipayapp%2Fcallback%2F\"&sign=\"GGxRnW%2FxgYmf582zggZCZFw%2FY1nhHJRptUzHIqCT9SvsJxs4bcoOzo4cEoBkyFultEr2CowQEGAgradEtTrsZI9TSK3Rv0IheBS0EP28cSqZYOQH%2BLXqsmzI2nZiJ%2BYYD0zFcS45yzYAEn4ll8Fx4subACEzLzIM%2BBxYwHcp43g%3D\"&sign_type=\"RSA\""遇到的问题:body为空,total_fee为0&
遇到的写法js写法:
$('body').on('ajaxSubmit.success', '#paycenter-form', function (e, data){
var paytype_id = $('input[name=payment]:checked').val();
$.payment($.paymentmapping[paytype_id], data, function (result){...}});
$.payment = function (type, data, successCallback, failCallback){
// 支付方式名称转换,服务端与客户端的映射
$.paymentmapping = {
'wxpayapp': 'wxpay',
'alipayapp': 'alipay'
})(jQuery);参考文档
支付结果返回处理
$this-&callback_url = kernel::openapi_url('openapi.ectools_payment/parse/ectools/ectools_payment_plugin_alipayapp', 'callback');
public function dopay($payment)
$mer_id = trim($this-&getConf('mer_id', __CLASS__));
// 支付宝合作者身份ID,以2088开头的16位纯数字
$seller_id = trim($this-&getConf('seller_id', __CLASS__));
// 支付宝账号
$rsa_private_key = trim($this-&getConf('rsa_private_key', __CLASS__));
// 私钥字符串
$this-&add_field('service', 'mobile.securitypay.pay');
// 必填,接口名称,固定值
$this-&add_field('partner', $mer_id);
// 必填,合作商户号
$this-&add_field('_input_charset', 'UTF-8');
// 必填,参数编码字符集
$this-&add_field('out_trade_no', $payment['payment_id']);
// 必填,商户网站唯一订单号
$this-&add_field('subject', $payment['shopName']);
// 必填,商品名称
$this-&add_field('payment_type', '1');
// 必填,支付类型
$this-&add_field('seller_id', $seller_id);
// 必填,卖家支付宝账号
$this-&add_field('total_fee', floatval($payment['total_amount']));
// 必填,总金额,取值范围为[0.01,]
$this-&add_field('body', $payment['body']);
// 必填,商品详情
$this-&add_field('it_b_pay', '1d');
// 可选,未付款交易的超时时间
$this-&add_field('notify_url',urlencode($this-&callback_url));
// 可选,服务器异步通知页面路径
if($payment['show_url']){
$this-&add_field('show_url', urlencode($payment['show_url']));
// 可选,商品展示网站
//生成订单
return $this-&generate(trim($rsa_private_key));
* 支付后返回后处理的事件的动作
* @params array - 所有返回的参数,包括POST和GET
* @return null
public function callback(&$recv)
$mer_id = trim($this-&getConf('mer_id', __CLASS__));
// 支付宝合作者身份ID,以2088开头的16位纯数字
if($this-&is_return_vaild($recv, $recv['sign'])){
$ret['payment_id'] = $recv['out_trade_no'];
$ret['account'] = $mer_id;
$ret['bank'] = app::get('ectools')-&_('支付宝支付移动版');
$ret['pay_account'] = app::get('ectools')-&_('付款帐号');
$ret['currency'] = 'CNY';
$ret['money'] = $recv['total_fee'];
$ret['paycost'] = '0.000';
$ret['cur_money'] = $recv['total_fee'];
$ret['trade_no'] = $recv['trade_no'];
$ret['t_payed'] = strtotime($recv['notify_time']) ? strtotime($recv['notify_time']) : time();
$ret['pay_app_id'] = "alipayapp";
$ret['pay_type'] = 'online';
$ret['memo'] = $recv['body'];
switch($recv['trade_status']){
case 'TRADE_SUCCESS':
$ret['status'] = 'succ';
echo 'success';
$message = 'Invalid Sign';
$ret['status'] = 'invalid';
echo 'fail';
return $ret;
notify_url&接口异步通知url
http://ask./docs/#http://ask./article/71个人总结,遇到问题,先看例子的返回值是怎样的,然后对比一下,记得看清楚,每一步的作用,一步一步解决
阅读(...) 评论()android安卓学习(281)
1、申请App_ID(这步略,去申请)
2、生产自己的key
Debug Key介绍
debug.keystore 在C盘下的.../.android/目录下,前面的路径根据电脑不同有所不同,一般开发时是用debug.keystore签名的;
debug.keystore的相关信息
name: “debug.keystore”
Keystore password: “android”
Key alias: “androiddebugkey”
Key password: “android”
CN: “CN=Android Debug,O=Android,C=US”
发布key的生产
keytool -genkey -keystore abc.keystore -alias abc -keyalg RSA -validity 20000&(生产一个abc的keystore)
用发布key签名应用
右击工程,AndroidTools,Expore Signed Application Package,其余步骤顺着提示进行(个人认为这种方式简单)
在模拟器或真机上安装签名后的工程
3、填写应用签名
去下载apk;运行下载的apk,填写2步骤中签名工程的包名,点击“Get Signature”,会生产一串字符;这串字符就是要填写的应用签名
4、用自己创建的key 调试工程
因为要想向微信分享数据,必须用非debug Key对App进行签名,但是我们一般开发时使用的都是debug Key,那么如果用创建的abc keystore 对App签名,进而达到调试时就可以向微信分享数据。
在Window-&Preferences-&Android-&Build-&Custom
debug keystore 选择abc keystore 会报错,当用自定义keystore进行调试时,必须保持自定义keystore的密码,别名,别名密码和debug keystore一样,所以我们要修改abc keystore 的一些信息
修改abc.keystore的别名:
keytool -changealias -keystore abc.keystore -alias abc -destalias androiddebugkey
修改abc.keystore的别名密码:
keytool -keypasswd -keystore abc.keystore -alias androiddebugkey
修改abc.keystore的密码:
keytool -storepasswd -keystore abc.keystore
在Window-&Preferences-&Android-&Build-&Custom debug keystore 选择abc keystore ,就不会报错了,这样调试app时也可以向微信分享数据
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:480232次
积分:6235
积分:6235
排名:第3083名
原创:70篇
转载:428篇
评论:111条
(2)(4)(5)(6)(4)(1)(4)(3)(4)(6)(3)(11)(3)(2)(3)(3)(2)(4)(3)(10)(1)(12)(3)(9)(24)(24)(14)(10)(14)(7)(17)(10)(10)(13)(14)(20)(16)(15)(19)(35)(17)(13)(30)(10)(6)(2)(2)(1)(13)(13)(3)(3)(15)(1)Android&调试微信分享&使用自定义key代替debug.key方法
解决:Keystore
was tampered with, or password was incorrect 错误。
像微信,百度地图测试时都得跟keystore关联,测试的话不得不用自己的keyStore打包,调试起来很麻烦。后来查阅了资料,可以自定义customer&debug&keyStore,&只是这个keyStore的别名,密码等必须按照adt定义的规矩来(别名:androiddebugkey,密码:android),我自己也参照网上的资料记了笔记:
之前在测试Eclipse ADT的Custom debug&自定义调试证书的时候,发过一篇关于调试证书规格的博文:,提到过自定义调试证书的密码和命名以及密码都是有规矩的。
其实应用开发接入各种SDK时会发现,有很多SDK是需要靠package
name和的指纹hash来识别的(百度地图SDK、Facebook
SDK等等…),这样如果使用默认自动生成的debug
keystore的话就会给开发调试工作带来一些麻烦。这时可以通过修改正式的release
keystore,生成一份“遵守规矩”的临时自定义调试证书给开发时用,就方便多了,具体方法如下:
1. 首先当然是先复制一份正式证书出来作为要修改为的临时调试证书。这里我们这支的keystore
的密码为hahaha,alias为silence,alias的密码为xixixi
2. 修改keystore密码的命令(keytool为JDK带的命令行工具):
-storepasswd -keystore my.keystore
其中,my.keystore是复制出来的证书文件,执行后会提示输入证书的当前密码(hahaha),和新密码(android)以及重复新密码(android)确认。这一步需要将密码改为。
3. 修改keystore的:
-changealias -keystore my.keystore -alias my_name
-destalias&debugkey
这一步中,my_name是证书中当前的alias(silence),-destalias指定的是要修改为的alias,这里按规矩来,改为androiddebugkey!这个命令会先后提示输入keystore的密码(android,已经在第二步中进行了修改)和当前alias的密码(xixixi)。
4. 修改alias的密码:
-keypasswd -keystore my.keystore
-alias&androiddebugkey
这一步执行后会提示输入keystore密码(android),alias密码(xixixi),然后提示输入新的alias密码(android),同样,按规矩来,改为android!
以上几个操作执行后,my.keystore就是符合规矩的debug
keystore了,接着在Eclipse的ADT设置中选中这个custom debug keystore即可,如下:
同时还可以看到证书的MD5以及SHA1指纹。
PS:以上3步命令行并没有先后顺序。
key.alias= 别名
此别名一开始以为可以随便写,后来多次尝试发现乱写打包一定不成功,此别名要与第一次生成签名时的别名一至,由于签名不是我申请的,申请签名的同事也忘记了签名的别名,如此只好找工具看一下签名的信息了,其实工具不用找了,在jdk中有
直接keytool -list& -v -keystore xxxx.keystore
-storepass 密码  签名的信息就有了
查看已有apk的签名 sha1值:
查看三方应用或是系统应用签名,把apk改成rar后缀,然后解压出来,将其中META-INF下的ANDROID.RSA文件(有的不是,反正就是.RSA文件),通过命令
& keytool -printcert -file
META-INF/CERT.RSA查看。如下:
C:\Users\ywj&keytool -printcert -file
D:\ForComputer\chromDownload\JinfengAppV2p0\META-INF\ANDROID1.RSA
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 查看keystore的签名 的文章

 

随机推荐