Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IOS没回调且不返回App #71

Open
wulaizi opened this issue Aug 12, 2020 · 5 comments
Open

IOS没回调且不返回App #71

wulaizi opened this issue Aug 12, 2020 · 5 comments

Comments

@wulaizi
Copy link

wulaizi commented Aug 12, 2020

按照文档走的 也配置了URL types Identifier 写的alipay 可是app没返回
支付成功没有回调

@fanriver
Copy link

fanriver commented Aug 29, 2020

好像是这里的代码被注释了
iOS/RCTAlipay.m

RCT_EXPORT_METHOD(payInterceptorWithUrl:(NSString *)urlStr
                  resolver:(RCTPromiseResolveBlock)resolve
                  rejecter:(RCTPromiseRejectBlock)reject) {
    [AlipaySDK.defaultService payInterceptorWithUrl:urlStr fromScheme:self.appScheme callback:^(NSDictionary *resultDic) {
        resolve(resultDic);    // 这里的注释去除
    }];
}

另外URL types alipay对应的那一项要写URL Scheme,随便写个纯字母的字符串就可以了

@jimmywong123
Copy link

好像是这里的代码被注释了
iOS/RCTAlipay.m

RCT_EXPORT_METHOD(payInterceptorWithUrl:(NSString *)urlStr
                  resolver:(RCTPromiseResolveBlock)resolve
                  rejecter:(RCTPromiseRejectBlock)reject) {
    [AlipaySDK.defaultService payInterceptorWithUrl:urlStr fromScheme:self.appScheme callback:^(NSDictionary *resultDic) {
        resolve(resultDic);    // 这里的注释去除
    }];
}

@0x5e 这个是什么原因,可以修复一下吗

@wulaizi
Copy link
Author

wulaizi commented Sep 4, 2020

没回调的问题已经解决
解决方法:
AlipayModule.m
#import "AlipayModule.h"

#import <AlipaySDK/AlipaySDK.h>

@implementation AlipayMoudle

RCT_EXPORT_METHOD(pay:(NSString *)orderInfo
resolver:(RCTPromiseResolveBlock)resolve
rejecter:(RCTPromiseRejectBlock)reject){

NSString *appScheme = @"alipay2019082766518009";
 dispatch_async(dispatch_get_main_queue(), ^{
 
    [[AlipaySDK defaultService] payOrder:orderInfo fromScheme:appScheme        callback:^(NSDictionary *resultDic) {
         
       resolve(resultDic);
         
     }];
   
 });

}

RCT_EXPORT_MODULE(Alipay);
@EnD

在AppDelegate.m

  • (BOOL)application:(UIApplication *)application
    openURL:(NSURL *)url
    sourceApplication:(NSString *)sourceApplication
    annotation:(id)annotation {

    if ([url.host isEqualToString:@"safepay"]) {
    //跳转支付宝钱包进行支付,处理支付结果
    [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:nil];
    return YES;
    }else{
    return [RCTLinkingManager application:application openURL:url
    sourceApplication:sourceApplication annotation:annotation];
    }

}

// NOTE: 9.0以后使用新API接口

  • (BOOL)application:(UIApplication *)app openURL:(NSURL )url options:(NSDictionary<NSString, id> *)options
    {
    if ([url.host isEqualToString:@"safepay"]) {
    //跳转支付宝钱包进行支付,处理支付结果

    [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:nil];

    return YES;
    }else{
    return [RCTLinkingManager application:app openURL:url options:options];

    }

}

@jimmywong123
Copy link

推荐使用@uiw/react-native-alipay吧,文档清晰,配置少,很好用的插件。

@cnpmge
Copy link

cnpmge commented Nov 3, 2020

@uiw/react-native-alipay

大佬,我的RN是0.57.6版本,可以用这个插件吗?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants