RN对接京东支付sdk(IOS)

article/2025/9/12 6:21:30

京东支付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'});}});}


http://chatgpt.dhexx.cn/article/jDocTfJF.shtml

相关文章

Ecshop小京东支付插件【小京东个人支付宝即时到帐支付插件支持PC电脑版+手机版】

商之翼建立了一整套以标准化电商软件为基础的"一站式"全网营销电商解决方案。包括基于不同运维模式的B2B2B2C、B2B2C、B2C等被企业用户广泛使用的电商解决方案&#xff0c;还包括基于生鲜、农村、汽车、商超百货、建材、母婴、酒行业、跨境、社区等具体解决方案&…

京东支付逻辑存在不安全因素

写在前面的话: 写本文只想引起足够重视,不管是开发还是用户; 关于本文提到问题也提交给京东官方,希望他们能重视. 同时也希望看到本文的用户多一个心眼 希望大家都不要达到以下的全部假设; --------------------------- 以下测试完成于2015-09-08日; 测试条件与步骤: 一手机…

京东支付SDK重构设计与实现

背景 众所周知&#xff0c;软件开发效率、维护成本与自身复杂度成正比&#xff0c;而客户端软件复杂度则主要体现在业务规模上。 京东支付Android SDK从2015年启动以来&#xff0c;已历经五个春秋&#xff0c;如今发展到纯支付业务代码7.5W行的规模&#xff08;不含支付团队内…

php支付接口要改动的参数,京东支付接口2.0PHP集成遇到的一些问题:所有参数必须是string!...

最近发现京东的支付接口升级了&#xff0c;原来的接口以及不一样了&#xff0c;就花了点时间做了升级&#xff0c;但是遇到了一些很基础很二的问题&#xff0c;之前的时候接口跳转通知是get方式的&#xff0c;用在原来的支付驱动上面很正常&#xff0c;但是2.0的接口就没法正常…

京东支付接口

官方文档&#xff1a;http://payapi.jd.com/docList.html?methodName0# 一、本地测试(用官方自带参数测试) 1、下载官方接口文件: 京东支付PC&H5接口文档>>京东支付2.0-PHP 2、测试&#xff0c;把“京东支付2.0-PHP”解压出来的文件放到PHP环境中&#xff0c;什…

RN对接京东支付sdk(Android)

京东支付Android接入说明文档 1、根据 京东支付Android接入说明文档 集成sdk依赖的jar包&#xff0c;配置相关的内容&#xff08;主要根据文档一步一步配置就行&#xff0c;这里就不细说了&#xff0c;本章主要是关于使用RN调用sdk&#xff09; 2、在../android/app/src/java …

京东支付功能流程

1&#xff1a;目前市场上支付API的第三方很多&#xff0c;主流的接口有 支付宝&#xff0c;微信&#xff0c;京东&#xff0c;云闪付&#xff0c;银联 等等 主要包含 付款码支付 &#xff0c; JSAPI支付&#xff0c; APP支付&#xff0c;H5支付 &#xff0c; 小程序支付&…

微信公众账号自动回复小程序链接

<a data-miniprogram-appid"appid" data-miniprogram-path"路径" href"可以不写">小程序</a>效果图 文章引用于&#xff1a; http://dy.163.com/v2/article/detail/DR1H8P840511AOT5.html

微信开发者工具预览/真机调试报错SyntaxError: Invalid or unexpected token [1.06.2210310][win32-x64]

项目在微信开发者工具上能正常运行&#xff0c;但是当点击【预览】或者【真机调试】就会报错&#xff1a; SyntaxError: Invalid or unexpected token [1.06.2210310][win32-x64] 如果是本地调试的话&#xff0c;将以下这些勾选上。

问题解决:微信开发者工具显示清除登录状态失败 TypeError: Failed to fetch [1.06.2303220][win32-x64]

问题&#xff1a; 在编译之前&#xff0c;会进行清除全部缓存操作&#xff0c;但是点击后出现清除清除登录状态失败。 清除登录状态失败 TypeError: Failed to fetch [1.06.2303220][win32-x64]原因&#xff1a; 未连接网络&#xff0c;或者被你连接的网络拦截。 解决&#xf…

公众号自动回复消息添加跳转小程序链接

业务说明&#xff1a; 是要实现在小程序授权公众号收发消息功能 解决方案&#xff1a; 在用户关注后自动回复消息&#xff08;因为要实现授权前提是用户必须先关注了公众&#xff09;&#xff0c;在消息中添加可跳转小程序的链接&#xff0c;就可以将小程序的参数传到授权页面进…

传奇GOM原版引擎支持光柱吗?

很多新手不会设置GOM原版引擎的地面特效&#xff0c;或者说不知道在什么地方设置地面特效功能&#xff0c;今天传奇工具网就把设置方法分享给你们&#xff0c;需要先说明&#xff0c;免费版是不支持设置地面特效的&#xff0c;只有商业版才有这个功能。(文章未附插件下载&#…

使用 create-react-app 创建项目报错 无法加载文件 C:\Users\admin\AppData\Roaming\npm\create-react-app.ps1,因为在此系统上禁止运

报错信息如上 解决步骤 //打开Windows PowerSell //运行: //Set-ExecutionPolicy -Scope CurrentUser //出现ExecutionPolicy: 然后填入RemoteSigned//然后执行get-ExecutionPolicy //发现变成了RemoteSigned&#xff0c;就成功了之后再使用 create-react-app 创建项目就ok啦…

微信支付 公众号关联商户号

1.进入https://mp.weixin.qq.com/ 开发–基本配置–获取appid 2.进入https://pay.weixin.qq.com/ 产品中心–APPID授权管理 3.在下图输入appid 4.进入https://mp.weixin.qq.com/ 5.确认授权&#xff0c;授权成功

小程序授权流程,小程序登录过期,小程序二次请求

写这篇文章&#xff0c;主要是因为前阵子&#xff08;其实就是一两周前&#xff09;被大佬要求画出授权时序图&#xff0c;然后我不出意外被教训了一顿&#xff0c;哈哈&#xff0c;经过一顿梳理&#xff0c;整出了下图&#xff1a; 上图为相应的时序图&#xff08;字丑&#x…

uniapp-小程序发券插件-领券进入微信卡包

这两天有个需求,在小程序领券,然后该优惠券进入微信卡包. 官方文档:https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter5_3_1.shtml 1.在小程序配置app.json 文件中加入如下配置&#xff1a; {"plugins": {"sendCoupon": {"version": …

wxFormBuilder + wxPython 工具开发第二章-日记本工具数据连接与展示

目录 前言 一、代码目录层级 二、数据库 三、数据表设计 四、展示数据 前言 上一章节已经介绍了如何将程序主窗口设计好生成python代码&#xff0c;运行成功的展示了窗体。 上一章内容地址&#xff1a; wxFormBuilder Python 工具开发第一章-拖出日记本图形界面_魂尾ac…

HBuidler运行小程序:rovider:wxf72d316417b6767f, version:1.0.1, AppID 不合法,invalid appid

解决&#xff1a; 这个是官方的demo,把对应的id值删掉就可以运行成功&#xff0c; 在微信开发者工具里&#xff0c;找到app.json, plugins里的2个广告配置删除可以运行成功。

wxFormBuilder + wxPython 工具开发第三章-日记本工具树节点增、改、删功能

目录 前言 一、添加树右击菜单 二、新增 1、实现二级日期节点新增 2、实现三级文章节点新增 三、修改 四、删除 前言 上一章节实现了对目记本表数据设计&#xff0c;数据库连接&#xff0c;数据展示的功能 wxFormBuilder Python 工具开发第二章-日记本工具数据连接与展…

进程和多线程的生命周期

进程和线程 进程 对于操作系统来说&#xff0c;一个任务就是一个进程&#xff08;Process&#xff09;。 课本概念&#xff1a;程序的一个执行实例&#xff0c;正在执行的程序等。 内核观点&#xff1a;担当分配系统资源&#xff08;CPU时间&#xff0c;内存&#xff09;的实…