
公约,我必须在开始时说些什么. 随着当前App的商业化程度越来越高,许多公司“ Apps将集成第三方支付SDK,因此成本相对较低,但是许多朋友仍然对集成了解不多,他们不喜欢阅读集成文档(我也是〜). 考虑一下之后,让我们写一篇有关付款的文章. 现在,我正在写有关微信支付的文章. 过一会儿,我将支付支付宝和银联,Apple Pay也组成.
最后:
如果您有更好的建议或对本文不满意,请与我联系,进行更改之前,我会先参考您的评论,在与我联系时,请注意微信支付. 如果您感觉良好,希望大家也能给予奖励〜嘻嘻〜祝大家学习愉快〜谢谢〜
WeChat SDK,一个集成了社交共享和Tenpay支付功能的SDK,要求商户先到WeChat开放平台进行注册,然后在批准后获取商户ID,以便我们使用支付功能,让我们首先检查一下.
首先,我们必须为此做准备:
做以上工作支付sdk,微信的SDK集成就告一段落〜
在这里我不会详细介绍. 毕竟,我们正在讨论如何集成SDK. 如果您想了解孩子们的鞋子,可以去微信公众平台亲自检查一下〜
这里没有介绍App ID,这一步也很简单,直接进入微信开放平台,根据相应的指导信息,逐步填写即可,确定,微信App ID需要审核时间,如果它很快,几分钟,如果它很慢,请慢慢等待~~

下载SDK包,这甚至更简单,直接转到资源中心以查看64位的iOS开发套件
只要毫不犹豫地下载它,</ p>

下载完成后,让我们看一下SDK软件包中的内容

我看了演示的2.0版本. 没有相关的微信支付代码,这非常痛苦. 如果这是第一次集成童鞋,它将哭泣……但是幸运的是我们使用了它. 庞大的互联网搜索引擎Google,百度可以解决这些问题,
那么多废话,现在让我们看看如何集成DSK包,我们首先创建一个名为PayProject的WorkSpace文件,然后创建我们的第一个项目WeChatPay-Objective-C,因为有人和II都做出了反应,为什么出现不是Swift版本. 实际上,并不是我要编写Swift版本. 这是因为其语法尚未完成. 每个版本均已更改. 这更痛苦. 现在有些人做出反应. 还要组成Swift版本,如果将来语法继续更改,那么每个人都会根据自己的编程经验和Xcode提示~~
对其进行修改.

打开我们创建的WeChatPay-Objective-C项目,将SDK包拖到其中,我在这里更改了文件夹的名称,也可以根据自己的喜好更改

添加SDK包后,我们必须进行某些操作,因为在iOS 9之后支付sdk,Apple限制了正常的HTTP请求,如果我们要继续使用,我们必须先在微信SDK文件夹中配置它~~声明

打开项目,找到项目的Info.plist文件,直接将其添加,有时Xcode不会提示,我们需要手动填写,这比较麻烦,我将在此处列出

添加这些后,还不够. 我们需要添加一个URL方案. 在这里,我首先提供一个应用程序ID,该ID是从以前的微信官方演示~~ wxb4ba3c02aa476ea1复制而来的,童鞋会自动复制并粘贴,这时,我们将打开项目配置,然后添加微信URL方案


在这一步上,基本上这个阶段已经结束,继续到下一个阶段~~~
使用第三方SDK的最痛苦的事情是您需要添加很多依赖项程序包,因为第三方需要进行数据收集或其他操作等,以便您可以在其中列出它们它们的背景微信中有几个依赖于您的应用流量的软件包,
现在让我们添加这些依赖包,如何添加它不需要我说0.0

我们已经完成了前期工作,现在我们将使用代码来实现微信支付〜,首先,我们必须首先注册微信App ID,否则更不用说支付了,您甚至不共享神马之类的东西要使用它,请打开AppDelegate.m,导入WXApi.h文件,注册应用ID,此应用ID是我刚刚提供的wxb4ba3c02aa476ea1.

要激活微信支付,我们必须有一个点击事件. 对于此处的UI,我们只提供一个UIButton和一个Action事件.


亮点在这里,已经做了很多工作,写了很多废话,只是为了真正打电话给微信支付现在付款~~

为您发布了实现代码〜这是我在上一个官方演示中复制的内容〜
PS: 这是演示,因此在此处获取的神马的签名,商人ID和神马的付款链接都写在客户端上,但是在实际开发中,强烈建议不要在客户端中自行生成,它必须由服务器返回,否则您将非常深刻地理解“鸡蛋痛”一词的含义~~
NSString *urlString = @"http://wxpay.weixin.qq.com/pub_v2/app/app_pay.php?plat=ios";
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:request
queue:queue
completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
if (data != nil) {
NSError *error;
NSMutableDictionary *dictionart = NULL;
dictionart = [NSJSONSerialization JSONObjectWithData:data
options:NSJSONReadingMutableLeaves
error:&error];
NSLog(@"URL: %@", urlString);
if (dictionart != nil) {
NSMutableString *retCode = [dictionart objectForKey:@"retcode"];
if (retCode.integerValue == 0) {
NSMutableString *stamp = [dictionart objectForKey:@"timestamp"];
// 调起微信支付
PayReq *req = [[PayReq alloc] init];
req.partnerId = [dictionart objectForKey:@"partnerid"];
req.prepayId = [dictionart objectForKey:@"prepayid"];
req.nonceStr = [dictionart objectForKey:@"noncestr"];
req.timeStamp = stamp.intValue;
req.package = [dictionart objectForKey:@"package"];
req.sign = [dictionart objectForKey:@"sign"];
[WXApi sendReq:req];
// 日志输出
NSLog(@"appid = %@", [dictionart objectForKey:@"appid"]);
NSLog(@"partnerId = %@", req.partnerId);
NSLog(@"prepayId = %@", req.prepayId);
NSLog(@"nonceStr = %@", req.nonceStr);
NSLog(@"timeStamp = %d", req.timeStamp);
NSLog(@"package = %@", req.package);
NSLog(@"sign = %@", req.sign);
} else {
NSLog(@"retmsg: %@", [dictionart objectForKey:@"retmsg"]);
}
} else {
NSLog(@"服务器返回错误, 未获取到JSON对象");
}
} else {
NSLog(@"服务器返回错误");
}
}];
我们都完成了实现代码. 现在,我们要做的是处理微信回调返回的结果. 无论您的付款成功还是失败,或者微信服务器已爆炸,我们都必须得到此结果以及相应的errCode.
打开AppDelegate.m,我们要添加微信代理协议,实现微信代理方法,以及两种AppDelegate方法

特定实现的代码
- (void)onResp:(BaseResp *)resp {
if ([resp isKindOfClass:[PayResp class]]) {
NSString *stringMessage = @"支付结果";
NSString *stringTitle = @"支付结果";
switch (resp.errCode) {
case WXSuccess:
stringMessage = @"支付结果: 成功!";
NSLog(@"支付成功 - PaySuccess, retCode = %d", resp.errCode);
break;
default:
stringMessage = [NSString stringWithFormat:@"支付结果: 失败!, retcode = %d, retstr = %@", resp.errCode, resp.errStr];
break;
}
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:stringTitle
message:stringMessage
delegate:nil
cancelButtonTitle:@"好的"
otherButtonTitles:nil, nil];
[alertView show];
}
}
- (BOOL)application:(UIApplication *)application
handleOpenURL:(NSURL *)url {
return [WXApi handleOpenURL:url delegate:self];
}
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
return [WXApi handleOpenURL:url delegate:self];
}

项目地址:
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-215784-1.html
最喜欢易烊千玺
估计这次小米公关费用花了不少