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) { }];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...
    请输入账号名阅读 11,453评论 3 22
  • 在我们应用开发中我们经常在自己的项目中使用到支付,下面我们来谈谈iOS这块的支付;iOS支付主要分为两类,第三方支...
    Hither阅读 12,596评论 9 42
  • iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...
    sillen阅读 5,244评论 0 1
  • iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...
    帅不过oneS阅读 7,987评论 2 8
  • 阳光透过树荫,照在树梢,地下留下依稀可见的树影,空气中弥留着夏天枯燥闷热的气氛,而此时在东阳市朝阳高中高三3班的...
    逝忆幻影阅读 1,432评论 0 1

友情链接更多精彩内容