iOS-面试之你做过支付没有?

简介: iOS-面试之你做过支付没有?

支付宝是第三方支付平台,简单来说就是协调客户,商户,银行三者关系的方便平台

使用支付宝进行一个完整的支付功能,大致有以下步骤:

a与支付宝进行签约,获得商户ID(partner)和账号ID(seller)

b下载相应的公钥私钥文件(加密签名用)

c下载支付宝SDK

d生成订单信息

e调用支付宝客户端,有支付宝客户端跟支付宝安全服务器打交道

f支付完毕后返回支付结果给客户端和服务器

支付功能的实现

有两种方式:

1支付宝的应用可以 用url直接连接到

支付宝的官网 (当然后台是要进行处理的)

2第二种就是添加支付宝的第三方了 首先 下载支付宝的demo

支付宝的demo一般的常见问题解决

1 No architecuturesto compilefor(ONLY_ACTIVE_ARCH =YES, active arch = x86_64,VALID_ARCHS = i386)

出现这样的问题一般是

将64位编译进去就能解决了(这个问题只要你下载的是最新的demo一般很少见了 )

解决方案:

targets

-> Architectures下面的Valid Architectures添加上arm64

2将支付宝的第三方添加到项目中的时候 有时 会出现openssl文件中的.h文件报错

说此文件不能被找到出现这样的问题是 的原因一般是添加的路径 不对

解决方案:

点击项目名称,点击“Build Settings”选项卡,在搜索框中,以关键字“search”搜索,对“Header Search Paths”增加头文件路径:$(SRCRCOT)/项目名称 设置一下路径 一般都能解决。

3  Cannot findinterface declarationfor"NSObject", supercalss of 'Base64'

解决方案打开报错的文件,增加头文件

#import

基本上支付宝中的demo里面的问题一般都会得到解决。然后

看着demo跟实际的项目结合一下就ok了

正式开始支付宝教程:

1将需要的文件,静态库等拖入工程中,这里有:include,libs,Utilities,libcrypto.a,libssl.a文件

2添加 库

Linked

FrameworksandLibraries中 添加

libssl.a

libcrypto.a   SystemConfiguration.framework

AlipaySDK.framework

3如果商户要在某个文件中使用给支付宝的SDK类库,需要增加引用头文件

#import"Order.h"

#import"DataSigner.h"

#import

4后面的基本上都是 按照官方demo写的

接口调用步骤:

1.封装订单模型将商品信息赋予AlixPayOrder的成员变量

Order *order =

[[Order alloc] init];

应用注册scheme,在项目的info.plist定义URL types

NSString *appScheme =@"zhifu";

生成订单描述

NSString *orderSpec =

[order description];

2.签名:获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,只需要遵循RSA签名规范,并将签名字符串base64编码和UrlEncode

idsigner

= CreateRSADataSigner(@“私钥key”);

NSString

*signedString = [signer signString:orderSpec];

传入订单描述

进行 签名

NSString

*signedString = [signer signString:orderSpec];

3.生成订单字符串

NSString *orderString= [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",orderSpec,signedString,@"RSA"];

4.调用支付接口

[[AlipaySDK

defaultService] payOrder:orderString fromScheme:appScheme

callback:^(NSDictionary *resultDic) { }];


相关文章
|
6月前
|
API iOS开发
iOS面试关于runtime
iOS面试关于runtime
56 0
|
6月前
|
设计模式 敏捷开发 前端开发
iOS面试
iOS面试
61 0
|
2月前
|
Linux 数据安全/隐私保护 iOS开发
如何使用 Xcode 打包导出 IPA 文件并进行 iOS 应用内测,无需支付苹果开发者账号费用?
如何使用 Xcode 打包导出 IPA 文件并进行 iOS 应用内测,无需支付苹果开发者账号费用?
|
6月前
|
存储 缓存 编译器
iOS面试原理篇
iOS面试原理篇
26 0
|
11月前
|
Linux 数据安全/隐私保护 iOS开发
如何使用 Xcode 打包导出 IPA 文件并进行 iOS 应用内测,无需支付苹果开发者账号费用?
苹果开发者账号认证需要支付 688 元,对于初学 iOS 开发的同学来说,仅仅是为了进行内测而不需要上架 App Store,这样的费用是不必要的。
|
11月前
|
Linux 数据安全/隐私保护 iOS开发
如何使用Xcode打包导出IPA文件并进行iOS应用内测,无需支付苹果开发者账号费用?
苹果开发者账号认证需要支付688元,对于初学iOS开发的同学来说,仅仅是为了进行内测而不需要上架App Store,这样的费用是不必要的。但是,有一款名为APP Uploader的软件可以解决这个问题,只需要注册苹果个人开发者账号,无需支付688元认证,即可打包自己开发的iOS应用,并提供给他人测试。
|
11月前
|
Web App开发 安全 Swift
iOS每天让ChatGPT出五道面试题(11)
iOS每天让ChatGPT出五道面试题(11)
94 0
|
程序员 开发工具 git
iOS面试:如何在平时工作中积累经验
如果你是一个离职者,还没有找到工作,那么,个人愚见:         一、不打无准备的仗,在没有准备好的情况下切记不要盲目去参加面试,在现在竞争异常激烈的大背景下,没有准备好匆匆去参加面试,可想而知最后的面试结果是啥;         二、仅仅指望狂刷面试题,背记大牛的面试笔记,是远远不够的,一份工作的竞争比例是在1:300~400之间,如果你想在这几百人中脱颖而出,你就需要花费比别人更多的努力才行;
103 0
iOS面试:如何在平时工作中积累经验
|
安全 开发工具 Swift
iOS 支付宝支付开发(最新版)
iOS 支付宝支付开发(最新版)
360 0
|
存储 缓存 编译器
iOS-底层原理 20:OC底层面试解析
iOS-底层原理 20:OC底层面试解析
415 0
iOS-底层原理 20:OC底层面试解析