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

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

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

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

c 下载支付宝SDK

d 生成订单信息

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

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

支付功能的实现 有两种方式:

1  支付宝的应用可以 用url 直接连接到 支付宝的官网 (当然后台是要进行处理的)

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

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

1 No architecutures to compile for (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 find interface declaration for "NSObject", supercalss of 'Base64'

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

#import <Foundation/Foundation.h>

基本上支付宝中的demo 里面的问题一般都会得到解决。然后 看着demo 跟实际的项目结合一下就ok 了

正式开始  支付宝教程:

(因为申请的工作不是我做的 所以就此过程就略了 )

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

2 添加 库

Linked Frameworks and Libraries  中 添加

libssl.a   libcrypto.a   SystemConfiguration.framework

AlipaySDK.framework

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

#import "Order.h"

#import "DataSigner.h"

#import <AlipaySDK/AlipaySDK.h>

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

IOS 支付功能的实现的更多相关文章

  1. iOS之开发支付功能概述

    前言:本随笔将对IOS开发的支付功能进行一个概述. 内容大纲: 一.常见的支付方案简介 二.第三方支付SDK 三.苹果官方支付方案 四.Web支付方案 正文: 一.常见的支付方案简介 在微信支付中 微 ...

  2. IOS开发之支付功能概述

    前言:本随笔将对IOS开发的支付功能进行一个概述. 内容大纲: 一.常见的支付方案简介 二.第三方支付SDK 三.苹果官方支付方案 四.Web支付方案 正文: 一.常见的支付方案简介 在微信支付中 微 ...

  3. 关于IOS中使用支付功能(以支付宝为例)

    支付宝是第三方支付平台,简单来说就是协调客户,商户,银行三者关系的方便平台 使用支付宝进行一个完整的支付功能,大致有以下步骤: a 与支付宝进行签约,获得商户ID(partner)和账号ID(sell ...

  4. IOS开发之—— iOS 支付 [支付宝、银联、微信]

    支付宝iOSsdk官方下载sdk地址:https://b.alipay.com/order/productDetail.htm?productId=2013080604609654&tabId ...

  5. iOS支付

    1.IOS purchase 介绍 所谓的IOS 内支付就是在应用中内嵌Store,在iOS APP 中使用Store Kit framework来实现In-App Purchase,Store Ki ...

  6. 简聊iOS支付集成(支付宝和微信支付)

    一.支付集成是什么 1.现在大部分app都有快捷支付功能,支付集成将第三方支付平台集成到自己的项目中,能够完成自己项目中的支付功能, 二.支付集成的使用 <1>.支付宝: 下载SDK和De ...

  7. [5] 微信公众号开发 - 微信支付功能开发(网页JSAPI调用)

    1.微信支付的流程 如下三张手机截图,我们在微信网页端看到的支付,表面上看到的是 "点击支付按钮 - 弹出支付框 - 支付成功后出现提示页面",实际上的核心处理过程是: 点击支付按 ...

  8. 微信公众号开发 [05] 微信支付功能开发(网页JSAPI调用)

    1.微信支付的流程 如下三张手机截图,我们在微信网页端看到的支付,表面上看到的是 "点击支付按钮 - 弹出支付框 - 支付成功后出现提示页面",实际上的核心处理过程是: 点击支付按 ...

  9. 手机网站支付如何接入支付宝简易版支付功能PHP版

    接入支付宝准备工作:(关于账号可以是个体商户也可以是企业账号但必须有营业执照) 1.登录蚂蚁金服开放平台  2.创建应用,应用分类网页应用和移动应用.应用提交审核审核通过后得到Appid才能调用相应的 ...

随机推荐

  1. iOS应用开发:什么是ARC

    ARC是什么 ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting).简单地说,就是代码中自动加入了retain/release,原先需要手动添加的 ...

  2. 使用NodeJS将XML解析成JSON及性能比较

    并不是所有的API都是以JSON格式返回的.我们有时侯不得不处理一些XML.幸运的是有一个NodeJS模块 xml2js 可以帮你做这件事.   比如,我们要处理下面这段XML   <?xml ...

  3. [SQL]SQL语言入门级教材_SQL语言快速入门(五)

    SQL语言快速入门(一) SQL是英文Structured Query Language的缩写,意思为结构化查询语言. SQL语言的主要功能就是同各种数据库建立联系,进行沟通.按照ANSI(美国国家标 ...

  4. Mingyang.net:为什么不将Bean定义在Action参数中?

    Spring MVC提供了一种方便的Bean填充方式: @Controller public class CmsChannelController extends AbstractController ...

  5. 常用自动化测试工具介绍(支持B/S、C/S)

    一.功能测试工具1.QTP测试工具 全名HP QuickTest Professional software ,最新的版本为HP QuickTest Professional 11.0 QTP是qui ...

  6. jdbc调用sparksql

    将hive-site.xml拷贝到spark目录下conf文件夹 local模式 spark-sql --driver-class-path /usr/local/hive-1.2.1/lib/mys ...

  7. 《Code Complete》ch.22 开发者测试

    WHAT? 单元测试(Unit Testing):是将一个程序员或一个开发团队所编写的,一个完整的类.子程序或者小程序,从完整的系统中隔离出来进行测试 组件测试(Component Testing): ...

  8. python学习笔记(SMTP邮件发送:带附件)

    博主有段时间没有更新博客了 先整理一个之前整理过的SMTP邮件发送,这次是带附件的功能 #!/usr/bin/env python # -*- coding: utf_8 -*- from email ...

  9. Quartz.Net CronExpression表达式详解

    Quartz.Net是我们常用的开源任务调度程序,其中最方便最强大的功能就是灵活多变的定时任务执行的支持.他靠什么来实现这个灵活的任务定时调度呢,就是咱们今天要详细分享的Cron Express表达式 ...

  10. zepto的clone方法于textarea和select的bug修复

    (function($) { Zepto.fn.clone = function() { var result = $.fn.clone.apply(this, arguments), oldText ...