一 、支付宝集成

支付宝官方集成文档

1、下载支付宝官方demo,将AlipaySDK.bundle、AlipaySDK.framework两个框架导入到项目中,如下图:

2、选择工程中 Build Phases 选项卡的 Link Binary With Libraries 中,增加以下依赖:

在Build Phases选项卡的Link Binary With Libraries中,增加以下依赖:

3、设置URL  Schemes

4、AppDelegate设置,导入如下代码

- (BOOL)application:(UIApplication *)applicationopenURL:(NSURL *)urlsourceApplication:(NSString *)sourceApplicationannotation:(id)annotation {if ([url.host isEqualToString:@"safepay"]) {// 支付跳转支付宝钱包进行支付,处理支付结果[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {NSLog(@"result = %@",resultDic);}];// 授权跳转支付宝钱包进行支付,处理支付结果[[AlipaySDK defaultService] processAuth_V2Result:url standbyCallback:^(NSDictionary *resultDic) {NSLog(@"result = %@",resultDic);// 解析 auth codeNSString *result = resultDic[@"result"];NSString *authCode = nil;if (result.length>0) {NSArray *resultArr = [result componentsSeparatedByString:@"&"];for (NSString *subResult in resultArr) {if (subResult.length > 10 && [subResult hasPrefix:@"auth_code="]) {authCode = [subResult substringFromIndex:10];break;}}}NSLog(@"授权结果 authCode = %@", authCode?:@"");}];}else if([url.host isEqualToString:@"pay"]){//        return [WXApi handleOpenURL:url delegate:[WXApiManager shareInstance]];}else{}return YES;
}// NOTE: 9.0以后使用新API接口
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{if ([url.host isEqualToString:@"safepay"]) {// 支付跳转支付宝钱包进行支付,处理支付结果[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {NSLog(@"result = %@",resultDic);}];// 授权跳转支付宝钱包进行支付,处理支付结果[[AlipaySDK defaultService] processAuth_V2Result:url standbyCallback:^(NSDictionary *resultDic) {NSLog(@"result = %@",resultDic);// 解析 auth codeNSString *result = resultDic[@"result"];NSString *authCode = nil;if (result.length>0) {NSArray *resultArr = [result componentsSeparatedByString:@"&"];for (NSString *subResult in resultArr) {if (subResult.length > 10 && [subResult hasPrefix:@"auth_code="]) {authCode = [subResult substringFromIndex:10];break;}}}NSLog(@"授权结果 authCode = %@", authCode?:@"");}];}else if([url.host isEqualToString:@"pay"]){//        return [WXApi handleOpenURL:url delegate:[WXApiManager shareInstance]];}else{}return YES;
}
复制代码

5、在使用支付宝支付的页面,导入import <AlipaySDK/AlipaySDK.h>头文件,添加如下代码

orderString:提交订单后,服务器返回的编码

appScheme:应用注册scheme,在AliSDKDemo-Info.plist定义URL types

二 、微信集成

微信官方集成文档

1 、下载并安装cocopods

#集成微信
pod 'WechatOpenSDK'复制代码

2 、 设置URL Schemes,“URL scheme”为你所注册的应用程序id

3 、 导入如下依赖库

4 、 AppDelegate设置,导入如下代码:

//导入头文件
#import "WXApi.h"复制代码
//向微信注册,发起支付必须注册
//要使你的程序启动后微信终端能响应你的程序,必须在代码中向微信终端注册你的id
[WXApi registerApp:@"xxxxxxx" enableMTA:YES];复制代码

5 、在使用微信支付的页面,先导入头文件,再调用如下代码:

6 、微信回调

//微信SDK自带的方法,处理从微信客户端完成操作后返回程序之后的回调方法,显示支付结果的
-(void)onResp:(BaseResp*)resp{//启动微信支付的responseNSString *payResoult = [NSString stringWithFormat:@"errcode:%d", resp.errCode];if([resp isKindOfClass:[PayResp class]]){//支付返回结果,实际支付结果需要去微信服务器端查询switch (resp.errCode) {case 0:payResoult = @"支付结果:成功!";break;case -1:payResoult = @"支付结果:失败!";break;case -2:payResoult = @"用户已经退出支付!";break;default:payResoult = [NSString stringWithFormat:@"支付结果:失败!retcode = %d, retstr = %@", resp.errCode,resp.errStr];break;}}
}
复制代码

三 、 银联支付集成

银联手机控件支付官网

1 、下载对应的ios开发包

下载的ios开发包,对应的文件结构如下图:

2 、 将对应的文件导入项目中,如图:

3 、 使用UPPaymentControl需要添加CFNetwork.framework、SystemConfiguration.framework 、libz、libPaymentControl.a到工程中,添加后如下图:

4 、 在工程info.plist设置中添加一个URL Types回调协议(在UPPayDemo工程中使用“UPPayDemo”作为协议),用于在支付完成后返回商户客户端。请注意URL Schemes需要是唯一的。

5 、 http请求设置(ats)在测试环境测试时,需要在工程对应的plist文件中添加NSAppTransportSecurity Dictionary 并同时设置里面NSAllowsArbitraryLoads 属性值为 YES,具体设置可参照以下截图:

注:发生产环境可删除此设置。向Apple发布正式版本时请删除此设置。

6 、添加协议白名单

7 、 银联支付调用代码:在需要调用支付控件接口的代码文件内引用头文件UPPaymentControl.h。

(注意:如果工程的compile source as 选项的值不是Objective–C++,则引用此头文件的文件类型都要改为.mm)

支付接口调用 ,如图:

如图,到此,支付宝、微信、银联支付到此结束!!!

如有问题还需要参照最新的官方文档。

转载于:https://juejin.im/post/5b7246d76fb9a0096f29a403

ios 支付宝、微信、银联支付集成相关推荐

  1. Android支付宝,微信,银联支付支付的集成

    移动支付 用户使用移动的终端完成对所购买商品或者服务的支付功能;分为近场支付(蓝牙支付,刷卡,滴卡),和远程支付(网上支付,短信支付) app支付模块 常见的支付厂商-->常见的支付方式 支付宝 ...

  2. Android 支付宝 微信 银联 支付

    补充技术:现在很多支付平台,那么就需要有一个统一的平台进行支付的封装,那就是PING++有兴趣的朋友可以自己看一下. 一.支付难不难,不难,都是属于第三方的东西,难度不大. 二.支付是安全的,因为都是 ...

  3. iOS开发 支付之银联支付集成

    iOS开发之银联支付集成 最近在做支付这一块的东西,就记录下来以便以后参考和各位交流学习,这里是银联支付 银联官网在这里,这里能下载SDK或者是看文档.文档嘛,对银联来说,还是不要看的太仔细的好,以前 ...

  4. SpringBoot从入门到精通教程(二十九)- 微信企业支付集成(五分钟集成)

    需求背景 SpringBoot用法:微信企业支付集成(五分钟集成) 问题痛点 通过SpringBoot框架,集成服务端微信企业支付接口,做到下载即用(填写好相关微信支付后台相关Key信息),最快五分钟 ...

  5. ios 支付宝:移动支付2

    ios 支付宝:移动支付1 http://blog.csdn.net/dynastyting/article/details/51304293 ios 支付宝:移动支付2 http://blog.cs ...

  6. iOS 微信、支付宝、银联支付组件的进一步设计

    前言 有段时间没写技术文章了,一是因为工作太忙,再者因为本人文笔实在一般.最近终于闲下来,本着分享的目的将一些组件设计上的心得与大家分享. 本篇文章是基于原有一篇关于支付文章的进一步优化设计,所以在阅 ...

  7. 【Android实战】移动支付(微信、支付宝、银联)集成

    微信支付 Demo一直返回-1 集成之后总是返回-1 Demo中的订单模拟 客户端快速集成 集成关键步骤 基本流程 支付宝支付 集成过程 注意事项 银联支付 小结 更新 2016-1-6 ll 微信支 ...

  8. java对接支付宝微信银联_JavaWEB后端支付银联,支付宝,微信对接

    JavaWEB后端支付银联,支付宝,微信对接 标签(空格分隔): java 项目概述 最近项目需要后端打通支付,所以对接部分做成了一个小模块. 先说下项目要求: 后端要对接银联无跳转Token支付,支 ...

  9. java对接支付宝微信银联_经典设计模式之策略模式【如何重构聚合支付平台,对接【支付宝,微信,银联支付】】(示例代码)...

    写在前面:设计模式源于生活,而又高于生活! 为什么要使用设计模式重构代码 使用设计模式可以重构整体架构代码.提高代码复用性.扩展性.减少代码冗余问题. Java高级工程师装逼的技能! 什么是策略模式 ...

最新文章

  1. 根据前序、中序序列重建一棵二叉树的代码实现
  2. 解耦HTML、CSS和JavaScript
  3. 3583. 整数分组
  4. 【 HDU - 1215 】七夕节(数论,约数和公式)
  5. JEECG近期会开展培训公开课
  6. java NIO网络编程之SelectionKey
  7. Oracle存储过程介绍
  8. SQL Server AlwaysOn读写分离配置
  9. [动态规划|字符串] leetcode 5 最长回文子串
  10. zigbee CC2530 系列教程 14 蓝牙控制实验
  11. msvcr100.dll丢失修复方法
  12. PLC的当前状态,电气工程师建议看完,进阶上位机编程
  13. 应用服务器和数据库服务器有什么区别
  14. C语言程序设计学习笔记:P1-程序设计与C语言
  15. 标题利用pwdump、lc7、hashcat工具破解用户口令(基于win7环境下)
  16. 深度搜索和广度搜索特点的深刻理解
  17. Eclipse中Java项目转化为Java Web项目
  18. SpringBoot下结合使用Cacheable、CacheEvict和Scheduled注解轻松实现可过期本地缓存
  19. /usr/bin/ld: cannot find -lxxx 问题总结
  20. Linux内核cgroup使用介绍

热门文章

  1. s32k design statio封装函数加密
  2. centos7系统备份与还原
  3. 啊哈C——学习2.3一起来找茬
  4. 【物联网实训项目】------(四)家庭智慧安防系统之智能温控
  5. Jarvis OJ PWN题解 持续更新~
  6. android饿了么购物车,分享一个购物车的demo(效果高仿饿了么软件的购物效果)
  7. c++删除txt文件中指定行
  8. tez引擎跑hive 语句报错问题解决
  9. vue 循环出来的三个标签加不同的颜色
  10. 毕业设计 基于Java的飞机大战游戏的设计与实现