在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:PingPlusPlus/pingpp-ios开源软件地址:https://github.com/PingPlusPlus/pingpp-ios开源编程语言:Objective-C 75.6%开源软件介绍:Pingpp iOS SDK目录简介lib 文件夹下是 iOS SDK 文件, 版本要求iOS SDK 要求 iOS 10.0 及以上版本 接入方法如不需要使用 使用 CocoaPods
手动导入
接入方法使用 Ping++ 标准版 SDK
Objective-C // data 表示 Charge/Order/Recharge 的 JSON 字符串
[Pingpp createPayment:data
viewController:viewController
appURLScheme:URLScheme
withCompletion:^(NSString *result, PingppError *error) {
if ([result isEqualToString:@"success"]) {
// 支付成功
} else {
// 支付失败或取消
NSLog(@"Error: code=%lu msg=%@", error.code, [error getMsg]);
}
}]; Swift // 微信支付 SDK 需要设置 Universal Links
Pingpp.setUniversalLink("https://example.com/sample/")
Pingpp.createPayment(data as NSObject, viewController: viewController, appURLScheme: URLScheme) { (result: String?, error: PingppError?) in
if error != nil {
// 处理错误
}
// 处理结果
}
招行相关方法控制支付方式自动判断,安装招行 app 时通过打开 app 支付,未安装时通过 WebView 打开 H5 页面支付。 Pingpp.setCmbPayMethod(PingppCmbPayMethod.auto) 仅通过打开 app 支付,要求必须安装有招行 app。 Pingpp.setCmbPayMethod(PingppCmbPayMethod.appOnly) 仅通过 WebView 打开 H5 页面支付。 Pingpp.setCmbPayMethod(PingppCmbPayMethod.h5Only) 设置招行 H5 地址
// 参数 1,Bool,是否启用招行测试地址;
// 参数 2,String,招行测试 H5 地址。仅参数 1 为 true 时生效。如果参数 2 传 nil,则会使用默认测试地址。
Pingpp.setCmbEnv(true, url: nil)
Pingpp.setCmbEnv(true, url: "https://...") 接收并处理交易结果
渠道为支付宝但未安装支付宝钱包时,交易结果会在调起插件时的 Completion 中返回。渠道为微信、支付宝(安装了支付宝钱包)、银联或者测试模式时,请实现 UIApplicationDelegate 的 - application:openURL:options: 方法:- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary *)options {
BOOL canHandleURL = [Pingpp handleOpenURL:url withCompletion:nil];
return canHandleURL;
} func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
if Pingpp.handleOpen(url, withCompletion: nil) {
return true;
} else if Pingpp.handleAgreementURL(url, withCompletion: nil) {
return true;
} else {
// 其他逻辑
}
return false
}
// 微信使用 Universal Links 的情况,需要该方法
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
var ret = Pingpp.handleContinue(userActivity, withCompletion: nil)
if !ret {
// 其他逻辑
// ret = 其他处理
}
return ret
} 使用代扣签约接口Podfile 添加 pod 'Pingpp/Agreement', '2.2.34' 通过服务端获取 Objective-C [Pingpp signAgreement:agreement
withCompletion:^(NSString *result, PingppError *error) {
// 处理结果/错误
}]; Swift Pingpp.signAgreement(agreement) { (result: String?, error: PingppError?) in
// 处理结果/错误
} 处理签约结果Objective-C - (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary *)options {
if ([Pingpp handleOpenURL:url withCompletion:nil]) {
// 这个是处理支付回调的
return YES;
} else if ([Pingpp handleAgreementURL:url withCompletion:nil]) {
// 这个是处理签约回调的,签约回调,目前前端只会在 completion 返回 "unknown",需要通过服务端查询实际结果
return YES;
}
return NO;
} Swift func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
if Pingpp.handleOpen(url, withCompletion: nil) {
return true;
} else if Pingpp.handleAgreementURL(url, withCompletion: nil) {
return true;
} else {
// 其他逻辑
}
return false
}
// 微信使用 Universal Links 的情况,需要该方法
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
var ret = Pingpp.handleContinue(userActivity, withCompletion: nil)
if !ret {
// 其他逻辑
// ret = 其他处理
}
return ret
} 额外配置
注意事项* 如果不需要 Apple Pay,请不要导入 Apple Pay 的静态库。以免提交到 App Store 时审核不通过。* 如果 集成 Apple Pay 测试时请注意 以下几点
* 请勿直接使用客户端支付结果作为最终判定订单状态的依据,支付状态以服务端为准!!!在收到客户端同步返回结果时,请向自己的服务端请求来查询订单状态。* 支付宝渠道发生包冲突的情况使用阿里百川等阿里系的 SDK 时,可能会出现冲突,请尝试使用 因为 关于如何使用 SDK 请参考 开发者中心 或者 example 文件夹里的示例。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论