京东支付IOS接入说明文档

1、根据 京东支付IOS接入说明文档 集成sdk依赖的framework,配置相关的内容(xcode 需要配置签名)

2、在ios 下封装调用sdk的方法

JDPayManager.h

//
//  JDPayManager.h
//  b2bapp
//
//  Created by edz on 2021/3/9.
//  Copyright © 2021 Facebook. All rights reserved.
//#import <React/RCTBridgeModule.h>@interface JDPayManager : NSObject <RCTBridgeModule>
@end

JDPayManager.m

.m文件是对.h文件中方法是实现,对外部是不可见的

//
//  JDPayManager.m
//  b2bapp
//
//  Created by edz on 2021/3/9.
//  Copyright © 2021 Facebook. All rights reserved.
//#import <Foundation/Foundation.h>
#import "JDPayManager.h"
#import "ViewController.h"
#import <JDPay/JDPay.h>
#import <JDPay/JDPayJSONUtils.h>@implementation JDPayManagerRCT_EXPORT_MODULE();RCT_EXPORT_METHOD(addEvent:(NSDictionary *)payReqcallback:(RCTResponseSenderBlock) callback)
{dispatch_async(dispatch_get_main_queue(), ^{UIViewController *weakSelfView = [self getCurrentVC];NSString *appId = [payReq objectForKey:@"appId"];NSString *merchant = [payReq objectForKey:@"merchant"];NSString *orderId = [payReq objectForKey:@"orderId"];NSString *signData = [payReq objectForKey:@"signData"];NSLog(@"京东支付");[JDPayAuth_mainModule() payWithViewController:weakSelfViewappID:appIdmerchant:merchantorderId:orderIdsignData:signDataextraInfo:nilcompletion:^(NSDictionary *resultDict) {NSLog(@"支付结果");NSLog(@"京东 result = %@",resultDict);callback(@[resultDict]);}];});
}
- (UIViewController *)getCurrentVC
{UIViewController * curVC = nil;UIWindow * window = [[UIApplication sharedApplication] keyWindow];if (window.windowLevel != UIWindowLevelNormal){NSArray *windows = [[UIApplication sharedApplication] windows];for(UIWindow * tmpWin in windows){if (tmpWin.windowLevel == UIWindowLevelNormal){window = tmpWin;break;}}}UIView *frontView = [[window subviews] objectAtIndex:0];id nextResponder = [frontView nextResponder];if ([nextResponder isKindOfClass:[UIViewController class]]){curVC = nextResponder;}else{UIViewController * appRootVC = window.rootViewController;UIViewController * topVC = appRootVC;curVC = topVC;if (topVC.presentedViewController){curVC = topVC.presentedViewController;}}return curVC;
}@end

AppDelegate.m

#pragma mark - Handle url
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation
{NSMutableDictionary *options = [NSMutableDictionary dictionaryWithCapacity:2];if (sourceApplication != nil) {options[UIApplicationOpenURLOptionsSourceApplicationKey] = sourceApplication;}if (annotation != nil) {options[UIApplicationOpenURLOptionsAnnotationKey] = annotation;}return [self application:application openURL:url options:options];
}- (BOOL)application:(UIApplication *)appopenURL:(NSURL *)urloptions:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{if ([JDPayModule canHandleURL:url options:options]) {[JDPayModule handleURL:urloptions:optionscompletionHandler:^(NSDictionary * __nullable results, BOOL handled) {NSLog(@"handleURL:%@ options:%@ completionHandler:(%@, %@)",url, options, results, handled ? @"YES" : @"NO");}];return YES;}return NO;
}

3、唤起京东支付(jdpay接口需要生成一个京东订单,返回商户id、订单id和京东支付MD5的密钥)

MD5的密钥需要通过MD5进行加密生产签名

const { code, context, message } = await webapi.jdpay(tid);if (code == config.SUCCESS_CODE) {const text ='merchant=' +context.merchant +'&orderId=' +context.orderId +'&key=' +Const.MD5_KET;const signData = MD5.hex_md5(text).toLowerCase();const payRequest = {orderId: context.orderId,merchant: context.merchant,appId: Const.APP_ID,signData: signData};let JDPayModule;if (Platform.OS === 'ios') {JDPayModule = NativeModules.JDPayManager;JDPayModule.addEvent(payRequest, (result) => {console.log('result====>', result);if (result.payStatus == 'JDP_PAY_SUCCESS') {msg.emit('router: goToNext', {routeName: 'PaySuccess',tid: tid,payType: 'online'});}});}

RN对接京东支付sdk(IOS)相关推荐

  1. Android java对接建行支付SDK

    Android java 对接建行支付 准备工作 创建常量类 编写支付工具类 遇到的坑 用到的工具类 准备工作 在对接建行支付之前,需要准备好这几个东西:商户代码.商户柜台代码.分行代码.公钥 创建常 ...

  2. java如何实现建行支付_Android java对接建行支付SDK

    /** * @description: 支付参数 * @copyright: Copyright (c) 2020 * @author: liwei * @date: 2020/5/25 * @ver ...

  3. 【IOS游戏开发】 登陆以及支付SDK总结

    这段时间已经负责做IOS的登陆和支付了  前期没有做过ios的项目 在其中遇到了很多问题 现在也是自己能够独立完成SDK的接入了 但是IOS相对比Android接入稍微简单点  但是后期的打包 还有签 ...

  4. IOS APP端京东支付集成

    京东支付没有现成的SDK, 使用的是加载html.因此,在集成京东支付的时候,我们使用webView来进行加载显示支付的页面. 京东支付需要传递多个参数才能拉起支付页面,那么我们怎么样获得和传递参数呢 ...

  5. iOS SDK开发系列三之微信支付SDK封装Demo以及xcodebuild简单打包脚本实现

    前言 SDK开发系列文章一 SDK开发系列文章二 之前两个文章介绍了Cocoapods的原理,Xcode环境变量以及动态库和静态库的介绍,这些基本知识就单独抽出来了,方便以后翻阅.看了一遍网上的一些静 ...

  6. iOS 支付宝支付 微信支付SDK接口不统一? 盘他!

      开发过支付宝.微信支付的同学都知道,微信的支付 API 设计感觉是 Java 开发工程师写的,远不如支付宝 SDK 的接口设计用起来顺手.在这里,统一封装微信支付和支付宝支付的API,使两种支付方 ...

  7. 【CTO讲堂】支付接入开发的陷阱有多深? 京东支付

    [CTO讲堂]支付接入开发的陷阱有多深? 发表于2015-10-27 15:04| 3926次阅读| 来源CSDN| 0 条评论| 作者蒲婧 CTO俱乐部CTOCTO讲堂移动支付BeeCloud al ...

  8. 助力数据运营 | 京东支付-猎户数据监控平台

    点击「京东金融技术说」可快速关注 京东支付研发部-支付支撑研发部 「摘要」随着京东支付业务的迅猛发展,内部很多系统对业务个性化的指标监控需求日益增多,尤其是我们的运营人员,希望能实时监控我们线上的产品 ...

  9. 小程序完整对接 pingpp支付

    小程序完整对接 pingpp支付 有几个先要条件: 小程序需要企业认证且开通支付功能,个人认证是无法使用支付功能的(小程序微信支付官网) pingpp 本身接入的企业服务器(即商户服务器)并不强制要求 ...

  10. java 对接支付宝支付

    2019独角兽企业重金招聘Python工程师标准>>> 对接支付宝支付的前提: 1,商户开通支付能力 登录蚂蚁金服 开放平台:https://open.alipay.com/plat ...

最新文章

  1. Dubbo点滴(1) SPI入门
  2. 预测流失准确率超 82%,这个功能让“防流失+促留存大于 2”
  3. [课堂实践与项目]NavigationController与TabBarController的综合使用及易错点分析(包含消息提醒,app更新)...
  4. BFS——广度优先算法(Breadth First Search)
  5. osgdem的参数表(转)
  6. JDK源码解析之java.util.Iterator和java.lang.Iterable
  7. iOS事件机制,以及不同手势使用touchesBegan等表现
  8. lnk200无法解析的外部符号_语义解析
  9. CLR via C# ver4.0 读书笔记
  10. HTML:H5中新增表单标签<fieldset>
  11. 【amtlib.dll文件下载】amtlib.dll怎么替换
  12. lpush rpush 区别_lpush(lpush和rpush)
  13. 如何计算乘积 java_Java模拟计算机的整数乘积计算功能示例
  14. 计算机应用基础考试试题及答案 在word中,用户建立的文件默认,自考计算机应用基础试题及参考答案...
  15. 计算机如果没有什么 就无法启动,电脑开机没有任何反应
  16. 计算机二级MSoffice
  17. mysql安装问题:由于找不到MSVCR120.dIl,无法继续执行代码。
  18. CSS文本自动换行实现
  19. Javaweb项目毕****设列表详解
  20. linux dns 漏洞,Linux报缓冲区溢出漏洞,恶意DNS响应就能实施远程攻击

热门文章

  1. 测试声音延迟的软件,“Latency Test”详细操作流程,一款测试TWS耳机延迟的软件...
  2. python查找文字在图片中的位置_python实现简单图片文字识别翻译OCR
  3. 扫雷游戏网页版_《我的世界》简单的两款小游戏 带你回味和同学在电脑课上的时光...
  4. SVPWM调制的simulink仿真
  5. jvisualvm监控java,配置 jvisualvm 监控Java虚拟机
  6. qq恢复官方网站服务器繁忙,qq恢复官方网站
  7. 中国十个主要城市10-18年的统计年鉴
  8. webStorm 永久破解
  9. scrt上传下载文件
  10. Datalogic 得利捷推出超级灵活且坚固可靠的PowerScan 9600 系列 庆祝公司成立50周年