博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS中 最新支付宝支付(AliPay) 韩俊强的博客
阅读量:6817 次
发布时间:2019-06-26

本文共 3132 字,大约阅读时间需要 10 分钟。

每日更新关注:  新浪微博

如今的支付方式一般有三种, 支付宝, 微信, 网银. 个人认为最简单易用的还是支付宝, 微信尽管看起来币支付宝要简单,可是后端太麻烦了, 网银就不说了.

先放出官方文档,免得还有人找不到文档:

环境搭建

  • 下载AliPayDK,官方链接,更新时间:2016/01/28 :

    假设下载失败,请换个浏览器(至少我用QQ浏览器没有下载成功)

  • 所需文件导入

    1.按下面路径
    ~/支付宝钱包支付接口开发包2.0标准版(20160120)/DEMO/clientdemo/支付宝钱包支付接口开发包2.0标准版(iOS 15.0.6)
    找到库文件AlipaySDK.framework和资源包AlipaySDK.bundle拖入到你的project中,
    2.AliSDKDemo中libcrypto.a和libssl.a导入到你的project
    3.~/AliSDKDemo/AliSDKDemo下的openssl目录,Util目录,Order.h,Order.m拖入project
    4.导入下面库
    假设是Xcode 7.0之后的版本号,须要加入libc++.tbd、libz.tbd;
    假设是Xcode 7.0之前的版本号,须要加入libc++.dylib、libz.dylib

    这里写图片描写叙述
  • project设置改动

  • 每日更新关注:  新浪微博

    1.info.plist配置
    假设是iOS9.0之后(Xcode7.0)在info.plist中添加下面字典
    (也能够单独配置,有须要的请看官方文档)
    这里写图片描写叙述

设置Schemes

在info下 URL Types设置你的Schemes
这里写图片描写叙述

2.Build Settings配置

以keyword“search”搜索,对“Header Search Paths”添加头文件路径:$(SRCROOT)/项目名称
这里写图片描写叙述

3.这时候编译会报错,错误信息是

Cannot find interface declaration for 'NSObject', superclass of 'Base64'
那么须要打开报错了的文件,添加头文件。
import <Foundation/Foundation.h>
再编译,就ok了

每日更新关注:  新浪微博

iOS开发人员交流QQ群: 446310206

支付信息配置

在须要支付的文件里导入头文件

#import 
#import "DataSigner.h"#import "Order.h"

配置订单信息

这些都是演示样例信息,这些事不能完毕支付的,要以实际信息为准才干完毕支付

//商户ID    NSString *partner = @"";    //收款账户    NSString *seller = @"";    //私钥    NSString *privateKey = @"";    if (partner.length == 0 || seller.length ==0 || privateKey.length == 0) {        UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:@"缺少partner或者seller或者私钥。" preferredStyle:(UIAlertControllerStyleAlert)];        UIAlertAction *action = [UIAlertAction actionWithTitle:@"确定" style:(UIAlertActionStyleDefault) handler:nil];        [alert addAction:action];        [self presentViewController:alert animated:YES completion:nil];    }    //订单类    Order *order = [[Order alloc]init];    order.partner = partner;    order.seller = seller;    order.tradeNO = @"234927348";//订单号    order.productName = @"商品名称";    order.productDescription = @"商品描写叙述";    order.amount = [NSString stringWithFormat:@"%.2f", 0.01];//价格    order.notifyURL =  @"http://blog.csdn.net/fish_yan_?viewmode=list"; //回调网址    order.service = @"mobile.securitypay.pay";    order.paymentType = @"1";    order.inputCharset = @"utf-8";    order.itBPay = @"30m";    order.showUrl = @"m.alipay.com";    NSString *appScheme = @"xueyan";    //将商品信息拼接成字符串    NSString *orderSpec = [order description];    //获取私钥并将商户信息签名,外部商户能够依据情况存放私钥和签名,仅仅须要遵循RSA签名规范,并将签名字符串base64编码和UrlEncode    id
signer = CreateRSADataSigner(privateKey);
NSString *signedString = [signer signString:orderSpec];
//将签名成功字符串格式化为订单字符串,请严格依照该格式
NSString *orderString =
nil;
if (signedString !=
nil) { orderString = [
NSString stringWithFormat:@
"%@&sign=\"%@\"&sign_type=\"%@\"", orderSpec, signedString, @
"RSA"]; [[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(
NSDictionary *resultDic) {
//【callback处理支付结果】
NSLog(@
"reslut = %@",resultDic); }]; }

就这么多,假设手机装有支付宝client, 则直接调用client,假设没有client则调用网页版

每日更新关注:  新浪微博

 

这里写图片描写叙述

每日更新关注:  新浪微博

上一版本号支付宝支付博文具体解释:

你可能感兴趣的文章
Linux中用户组和用户所在文件
查看>>
捷配pcb极速制造
查看>>
Hive系列之HSQL转换成MapReduce过程
查看>>
Windows cannot find the local profile and is logging you on with a temporary profile
查看>>
oracle教程之oracle动态采样(一)
查看>>
我的友情链接
查看>>
PHP数组函数
查看>>
vue+typescript入门学习
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
linix下的php源码安装
查看>>
php session阻塞页面分析及优化
查看>>
HTTP状态码
查看>>
使用log4net配置相关信息
查看>>
Linux系统编程笔记
查看>>
jQuery.noConflict() 方法—— jquery库与其他库冲突的问题解决
查看>>
linux下inet_ntoa(包括inet_ntop)和printf的使用问题
查看>>
关于Linux 中getopt_long的用法
查看>>
【吾日三省吾身】2015.6.06-涅槃行动第十九天
查看>>
我的友情链接
查看>>