- 微信
PayReq request = new PayReq();
request.appId = appid;
request.partnerId = partnerid;
request.prepayId = prepayid;
request.nonceStr = noncestr;
request.timeStamp = timestamp;
request.packageValue = "Sign=WXPay";
request.sign = sign;
IWXAPI msgApi = WXAPIFactory.createWXAPI(mContext,
Constants.APP_ID);
boolean can = msgApi.sendReq(request);
if(can){
Toast.makeText(mContext, "正在调起微信", 1000).show();
}else{
Toast.makeText(mContext, "调起微信失败", 1000).show();
}
微信例子:
连接:http://pan.baidu.com/s/1nuvbwmd 密码:ja63
官方例子版本比较低,找客服应该能够要到高版本的。java
服务端生成预付单时候必定要android
按申请的移动的appId进行生成,不能使用pc或者什么公众号的appid,遇到个sb,非要这么干耽误了不少时间,在参数没有配置好以前调用微信api,微信是没有反应的,闪退,只有全部的参数对了才能正常支付,ios听说参数不对,可是能够进入微信界面。
签名与包名必定要按照规则去弄,不然一直失败,签名貌似也分大小写。
WXPayEntryActivity必定要在你的包名+.wxapi这个包下面,不然微信支付成功后不会跳入此页面,也就不能获取支付后数据,这里有个bug感受,我取消支付后关闭此activity,返回个人上一个activity,个人上一个能够有生命周期,然而支付成功后返回后,activity没有了生命周期了,也就没法刷新页面,不知道为何!后来加了一个广播,刷新了页面数据!ios
2 .支付宝开放平台api
支付宝的移动支付与微信也差不太多,包名与签名,还有一个私钥公钥的事,这个公私钥就是填写在合做伙伴密钥部分,而不是申请的应用上,与pc、wap(手机网站支付)使用同一个合做伙伴秘钥进行支付。应用的秘钥填写能够进行其余功能的开发,支付宝移动支付不须要,下载的例子签名时候有个签名bug,api版本不兼容,高版本手机报错,须要处理下,SignUtils类中,KeyFactory keyf = KeyFactory.getInstance(ALGORITHM,”BC”);加一个“BC”,这个签名在java程序是不会报错的,可是在android4.0以上必须加上“BC”,这里有个什么位数的差别。微信
在服务市场签约得到的大部分接口,签约主体是商户,接口权限属于具体的商户,这部分接口须要使用PID和密钥来调用,此类接口网关通常为mapi(https://mapi.alipay.com/gateway.do),PID对应的密钥一共有三种签名方式,分别是MD五、RSA、DSA。因为产品的特殊性,每一个产品支持哪些签名方式不尽相同,具体需参考各个产品的接口技术文档。
使用合做伙伴密钥的典型功能包括:
快捷登陆、移动支付、即时到帐收款、手机网站支付等。