手机qwallet启动失败Qwallet失败

 |  |  | 
您所在的位置: &
> 手机qq录音失败请稍后重试解决方法
手机qq录音失败请稍后重试解决方法
  来源:互联网   次阅读
手机qq录音失败请稍后重试解决方法大家可以来了解一下,有的朋友在使用手机QQ发送语音消息时会收到“录音失败,请稍后重试”提示,该如何解决呢?请试一试下文的方法吧。
  法一、卸载现有手机QQ之后重新安装最新版本就行了。
  法二、手机设置里面有个授权管理,里面有个录音管理,关了QQ录音就好了。
近日已经申请手机QQ2014版本的用户目前已经得到安卓版QQ4.6版本的推送了,值得一提的是全新的手机QQ已经…
更新时间:  运行环境:Android/
大家都在看
网友在1小时点赞了
网友在2小时点赞了
网友在3小时点赞了
网友在3小时点赞了
网友在7小时点赞了申请应用id见官方文档
需要的资源文件SDK文件包括 libWeChatSDK.a,WXApi.h,WXApiObject.h
info中添加申请的微信key,idenfifirer为weixin,urlSchema为申请的key
appdelegate中添加如下代码:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
if([[url absoluteString] hasPrefix:ONEWeiXin]) {
[WXApi handleOpenURL:url delegate:self];
return YES;
-(void) onReq:(BaseReq*)req {
DDLogInfo(@"wx :openid - &%@",req.openID);
-(void) onResp:(BaseResp*)resp {
if ([resp isKindOfClass:[PayResp class]]) {
if (payResponse.errCode == WXSuccess) {
NSLog(@"PayResp WXSuccess");
if (payResponse.errCode == WXErrCodeUserCancel) {
NSLog(@"PayResp WXErrCodeUserCancel");
NSString *eventStr = [NSString stringWithFormat:@"PayResp error other:%d", payResponse.errCode];
NSLog(@"%@", eventStr);
在微信实际调起代码中加入如下代码:
- (void)launchWxpay {
BOOL registerApp = [WXApi registerApp:@"##"];
if (!registerApp) {
NSLog(@"WXApi registerApp Failed!");
ONEPrePayResponse *prepay = [[ONEPayStore sharedInstance] prePayData];
prepay.package = @"Sign=WXPay";
PayReq *payRequest
= [[PayReq alloc] init];
payRequest.openID
= prepay.appid;
payRequest.partnerId
= prepay.partnerid;
payRequest.prepayId
= prepay.prepayid;
payRequest.nonceStr
= [prepay.noncestr stringValue];
payRequest.timeStamp
= [prepay.timestamp intValue];
payRequest.package
= prepay.package;
payRequest.sign
= [self generateSignWithPay:prepay];
BOOL isResult = [WXApi sendReq:payRequest];
if (isResult) {
[self addNotifications];
if (![WXApi isWXAppInstalled]) {
NSString *tipMsg = @"您的手机未安装手机微信或微信版本过低,请升级微信后方可使用微信支付";
[UIAlertView alertWithCallBackBlock:^(NSInteger buttonIndex) {}
message:tipMsg
cancelButtonName:@"我知道了"
otherButtonTitles:nil, nil];
[self postNotificationWithStatus:ONEPayState_WeiXinPay_NotInstalled];
[UIAlertView alertWithCallBackBlock:^(NSInteger buttonIndex) {}
message:@"支付繁忙,请稍候再试~"
cancelButtonName:@"确定"
otherButtonTitles:nil, nil];
[self postNotificationWithStatus:ONEPayState_WeiXinPay_Fail];
- (NSString *)generateSignWithPay:(ONEPrePayResponse *)response
NSMutableDictionary *params = [NSMutableDictionary dictionary];
[params setValue:kWebChatKey forKey:@"appid"];
[params setValue:response.appkey forKey:@"appkey"];
[params setValue:[NSString stringWithFormat:@"%@",response.noncestr] forKey:@"noncestr"];
[params setValue:response.package forKey:@"package"];
[params setValue:response.partnerid forKey:@"partnerid"];
[params setValue:response.prepayid forKey:@"prepayid"];
[params setValue:response.timestamp forKey:@"timestamp"];
NSArray *keys = [params allKeys];
keys = [keys sortedArrayUsingComparator:^NSComparisonResult(NSString *str1, NSString *str2) {
return [str1 compare:str2];
NSMutableString *sig = [NSMutableString string];
for (int i = 0; i & [keys count]; ++i) {
NSString *key = [keys objectAtIndex:i];
NSString *value = [params objectForKey:key];
[sig appendString:key];
[sig appendString:@"="];
[sig appendString:value];
[sig appendString:@"&"];
NSString *signStr = [sig substringToIndex:sig.length - 1];
return [WeChatPayWay sha1:signStr];
+ (NSString *)sha1:(NSString *)str
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
uint8_t digest[CC_SHA1_DIGEST_LENGTH];
CC_SHA1(data.bytes, (unsigned int)data.length, digest);
NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
for(int i = 0; i & CC_SHA1_DIGEST_LENGTH; i++)
[output appendFormat:@"%02x", digest[i]];
注意package固定值,sign为计算出的结果,大小写一定要对应正确
二.调起QQ支付
已有appname和appkey,appname用于url,app之间跳转,identifier为appname,url为urlschema的内容.添加到info的url中.
appdelegate中注册,并在url代理方法中添加返回结果的处理代码,如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[QQWalletSDK registerQQWalletApplication:ONEQQPay
urlScheme:kQQpayURLScheme
name:kQQpayAppName];
#pragma mark -
UIApplicationDelegate
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
[QQWalletSDK QQWalletSDKHanldeApplication:application openURL:url
sourceApplication:sourceApplication annotation:annotation];
return YES;
- (void)launchQQPay {
if (![QQWalletSDK isSupportQQWallet]) {
[UIAlertView alertWithCallBackBlock:^(NSInteger buttonIndex) {}
message:@"请先安装手机QQ"
cancelButtonName:@"确定"
otherButtonTitles:nil, nil];
ONEPrePayResponse *resp = [[ONEPayStore sharedInstance] prePayData];
if (!resp.appId || !resp.bargainorId || !resp.token_id || !resp.sig || !resp.nonce) {
DDLogInfo(@"qqpay resp: %@", resp);
[UIAlertView alertWithCallBackBlock:^(NSInteger buttonIndex) {} title:nil message:@"QQ钱包支付失败,请稍后再试!" cancelButtonName:@"确定" otherButtonTitles:nil, nil];
[QQWalletSDK startPayWithAppId:resp.appId bargainorId:resp.bargainorId tokenId:resp.token_id signature:resp.sig nonce:resp.nonce completion:^(QWMessage *message, NSError *error) {
ONEOrderPayStatus status = ONEPayState_
if (error) {
DDLogError(@"%@",[error localizedDescription]);
status = PayState_QQPay_PayE
switch (message.code) {
status = PayState_QQPay_PayS
case 11001:
status = PayState_QQPay_PayC
status = PayState_QQPay_PayParamE
case 11000:
status = PayState_QQPay_PayO
status = PayState_QQPay_PayPhoneNumE
status = PayState_QQPay_PayHaveP
status = PayState_QQPay_PayLoginE
[self postNotificationWithStatus:status];
注意bundleid一定要对应对.
1.appdelegate中处理url代码里添加跳转处理代码,这里处理回调
if([[url absoluteString] hasPrefix:AliPay]){
if ([url.host isEqualToString:@"safepay"]) {
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"safepay result = %@",resultDic);
if ([url.host isEqualToString:@"platformapi"]){
[[AlipaySDK defaultService] processAuthResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"platformapi result = %@",resultDic);
2.实际调起代码如下
- (void)launchAliPay {
@weakify(self)
[[AlipaySDK defaultService] payOrder:prepay.prepaystr fromScheme:prepay.appkey callback:^(NSDictionary *resultDic) {
@strongify(self)
int completeState = ONEPayState_
int resCode = [[resultDic objectForKey:@"resultStatus"] intValue];
NSString * resultStr = [resultDic objectForKey:@"result"];
NSString *trueStr = @"";
if(resultStr && [resultStr length] & 0){
NSString *subStr = @"&success=";
NSRange range = [resultStr rangeOfString:subStr];
if(resultStr.length & range.length + 5){
trueStr = [resultStr substringWithRange:NSMakeRange (range.location+ range.length + 1, 4)];
if (resCode == 9000 && [trueStr isEqualToString:@"true"])
completeState = PayState_Alipay_PayS
}else if (resCode == 8000){
completeState = PayState_Alipay_PayI
}else if (resCode == 4000){
completeState = PayState_Alipay_PayE
}else if (resCode == 6001){
completeState = PayState_Alipay_PayC
}else if (resCode == 6002){
completeState = PayState_Alipay_NetE
completeState = PayState_Alipay_NotKnow_E
[self postNotificationWithStatus:completeState];
支付宝的秘钥等放在服务端,有服务端传递回参数
ps.在实际支付集成中尽量把每一个参数都对应好,很多错误是没有错误日志.
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:17498次
排名:千里之外
原创:48篇
(1)(2)(3)(1)(1)(5)(2)(2)(2)(3)(5)(1)(11)(1)(1)(7)(2)}

我要回帖

更多关于 手机qq打开摄像头失败 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信