├── Source ├── ZDAliPayModule.h ├── HYAliPayManager.h ├── ZDAliPayModule.m └── HYAliPayManager.m ├── eros-plugin-iOS-alipay.podspec └── README.md /Source/ZDAliPayModule.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZDAliPayModule.h 3 | // WeexEros 4 | // 5 | // Created by zhongdong on 2018/6/13. 6 | // Copyright © 2018 zhongdong. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface ZDAliPayModule : NSObject 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /Source/HYAliPayManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // HYAliPayManager.h 3 | // eros-plugin-iOS-alipay 4 | // 5 | // Created by XHY on 2018/6/22. 6 | // 7 | 8 | #import 9 | #import 10 | 11 | @interface HYAliPayManager : NSObject 12 | 13 | + (void)payWithOrderInfo:(NSString *)orderInfo fromScheme:(NSString *)scheme callback:(WXModuleCallback)callback; 14 | 15 | + (BOOL)handlerOpenURL:(NSURL *)url; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /eros-plugin-iOS-alipay.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | 3 | s.name = "eros-plugin-iOS-alipay" 4 | s.version = "0.0.4" 5 | s.summary = "适用于weex的支付宝支付插件." 6 | s.homepage = "https://github.com/zhongdom" 7 | s.license = "MIT" 8 | s.author = { "zhongdong" => "934072239@qq.com" } 9 | s.platform = :ios 10 | s.ios.deployment_target = "8.0" 11 | s.source = { :git => "https://github.com/zhongdom/eros-plugin-iOS-alipay.git", :tag => s.version.to_s } 12 | s.source_files = "Source/*.{h,m,mm}" 13 | s.requires_arc = true 14 | s.dependency "AlipaySDK-iOS", "15.5.5" 15 | 16 | end 17 | -------------------------------------------------------------------------------- /Source/ZDAliPayModule.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZDAliPayModule.m 3 | // 4 | // Created by zhongdong on 2018/6/13. 5 | // Copyright © 2018 zhongdong. All rights reserved. 6 | // 7 | 8 | #import "ZDAliPayModule.h" 9 | #import 10 | #import "HYAliPayManager.h" 11 | #define kAliPayScheme @"sendAliPayRequestDemo" 12 | 13 | WX_PlUGIN_EXPORT_MODULE(bmAliPay, ZDAliPayModule) 14 | 15 | @implementation ZDAliPayModule 16 | 17 | WX_EXPORT_METHOD(@selector(pay:callback:)) 18 | 19 | /** 20 | 支付宝支付 21 | 22 | @param params 参数 {@"authInfo": @"服务器签名后的订单数据", @"scheme": @"用户自定义的scheme"} 23 | @param callback 回调 24 | */ 25 | - (void)pay:(NSDictionary *)params callback:(WXModuleCallback)callback { 26 | NSString *orderString = [params objectForKey:@"authInfo"]; 27 | 28 | NSString *scheme = [params objectForKey:@"scheme"]; 29 | 30 | if (!scheme) { 31 | scheme = kAliPayScheme; 32 | } 33 | 34 | [HYAliPayManager payWithOrderInfo:orderString fromScheme:scheme callback:callback]; 35 | } 36 | 37 | @end 38 | 39 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # eros-plugin-iOS-alipay 2 | 支付宝支付插件 [eros-plugin-android-alipay](https://github.com/HirahKong/eros-plugin-android-alipay) 的iOS版本,接口和支付状态返回保持一致 3 | 4 | ## 集成 5 | - 在iOS项目文件夹的`Podfile`中添加以下代码,然后执行 `pod update` 6 | ``` 7 | pod 'eros-plugin-iOS-alipay', :git => 'https://github.com/zhongdom/eros-plugin-iOS-alipay.git', :tag => '0.0.4' 8 | ``` 9 | 10 | - 在项目设置`TARGEI->Info->URL Types` 增加一个 `scheme`,`URL Schemes`中填写自定义的scheme值(默认值为`sendAliPayRequestDemo`,此字段要求唯一,建议自定义,否则支付回调可能不正常),`Identifier`中随便填写一个字符串 11 | 12 | - 在 `AppDelegate.m`中添加引用 13 | 14 | ``` 15 | #import 16 | ``` 17 | 18 | 复制以下代码 注意代码要放到 `@end` 之前 19 | 20 | ``` 21 | - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { 22 | if ([url.host isEqualToString:@"safepay"]) { 23 | return [HYAliPayManager handlerOpenURL:url]; 24 | } 25 | return [super application:application openURL:url sourceApplication:sourceApplication annotation:annotation]; 26 | } 27 | 28 | ``` 29 | 30 | 31 | 32 | ## 使用方法 33 | ``` 34 | var bmAliPay = weex.requireModule('bmAliPay'); 35 | 36 | bmAliPay.pay({ 37 | authInfo: '****', //服务器签名后的订单数据 38 | scheme: '自定义scheme,与系统设置增加的scheme保持一致,强烈建议自定义!!!!' 39 | }, function (resData) { 40 | console.log("支付返回数据:"+JSON.stringify(resData)); // 具体返回值参考 eros-plugin-android-alipay 41 | }) 42 | ``` 43 | 44 | ## 更新日志 45 | 46 | #### 0.0.4 47 | - 支付宝SDK使用官方源 48 | 49 | #### 0.0.3 50 | - bugfix; 51 | -------------------------------------------------------------------------------- /Source/HYAliPayManager.m: -------------------------------------------------------------------------------- 1 | // 2 | // HYAliPayManager.m 3 | // eros-plugin-iOS-alipay 4 | // 5 | // Created by XHY on 2018/6/22. 6 | // 7 | 8 | #import "HYAliPayManager.h" 9 | #import 10 | 11 | @interface HYAliPayManager () 12 | 13 | @property (nonatomic, copy) WXModuleCallback callback; 14 | 15 | @end 16 | 17 | @implementation HYAliPayManager 18 | 19 | + (instancetype)shareInstance 20 | { 21 | static HYAliPayManager *_instance = nil; 22 | static dispatch_once_t onceToken; 23 | dispatch_once(&onceToken, ^{ 24 | _instance = [[HYAliPayManager alloc] init]; 25 | }); 26 | 27 | return _instance; 28 | } 29 | 30 | - (void)_payWithOrderInfo:(NSString *)orderInfo fromScheme:(NSString *)scheme callback:(WXModuleCallback)callback 31 | { 32 | self.callback = callback; 33 | [[AlipaySDK defaultService] payOrder:orderInfo fromScheme:scheme callback:^(NSDictionary *resultDic) { 34 | if (callback) { 35 | callback(@{ 36 | @"status": resultDic[@"resultStatus"], 37 | @"errorMsg": resultDic[@"memo"], 38 | @"data": resultDic[@"result"] 39 | }); 40 | } 41 | }]; 42 | } 43 | 44 | + (void)payWithOrderInfo:(NSString *)orderInfo fromScheme:(NSString *)scheme callback:(WXModuleCallback)callback 45 | { 46 | [[HYAliPayManager shareInstance] _payWithOrderInfo:orderInfo fromScheme:scheme callback:callback]; 47 | } 48 | 49 | + (BOOL)handlerOpenURL:(NSURL *)url 50 | { 51 | __weak typeof(HYAliPayManager) *_weakSelf = [HYAliPayManager shareInstance]; 52 | //跳转支付宝钱包进行支付,处理支付结果 53 | [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) { 54 | 55 | if (_weakSelf.callback) 56 | { 57 | _weakSelf.callback(@{ 58 | @"status": resultDic[@"resultStatus"], 59 | @"errorMsg": resultDic[@"memo"], 60 | @"data": resultDic[@"result"] 61 | }); 62 | _weakSelf.callback = nil; 63 | } 64 | 65 | }]; 66 | 67 | return YES; 68 | } 69 | 70 | @end 71 | --------------------------------------------------------------------------------