IOS快速嵌入支付宝

本文示例代码是在http://winann.blog.51cto.com/4424329/1601654中demo的基础上稍作修改,读者可以先看一下这篇文章,非常不错,并在此感谢这篇文章的作者。

惯例,先写出嵌入支付宝的核心代码

- (IBAction)payWithAli:(UIButton *)sender {
    //生成订单信息
    NSString *orderString=[AlipayRequestConfig genOrderWithProductName:@"金币" productDescription:@"兑换抵用券" amount:@"0.03"];

    //前往支付宝界面
    [[AlipaySDK defaultService] payOrder:orderString fromScheme:kAppScheme callback:^(NSDictionary *resultDic) {
        dispatch_async(dispatch_get_main_queue(), ^{
            //解析返回状态码
            int resultSuccess = [[resultDic objectForKey:kALipaykeyResult] intValue];
            //是9000代表支付成功
            if (resultSuccess == kALipaykeyResultSuccess) {
                NSLog(@"支付成功");
            }else{
                NSLog(@"支付失败");
            }
        });
    }];
}

好了,代码写完了,其他的就是配置一些信息了。
最好先去读一下支付宝的官方帮助文档和实例代码(实例代码有些啰嗦)
1,将附件demo中的IntegratedAlipay文件夹拷贝到你所在的项目,找到AlipayHeader.h文件,填写必要的信息(kPartnerID,kSellerAccount,kAppScheme,kPrivateKey)。
2,在Build Phases-LinK Binary With libraries中添加SystemConfiguration.framework,添加步骤可以参阅http://winann.blog.51cto.com/4424329/1601654
3,在Build Settings中搜索Paths,找到FrameWork Search Paths,Header …,Library …,在个中添加你项目中AlipaySDK,和AlipayFils的路径;
实例
FrameWork Search Paths:
$(PROJECT_DIR)/IntegratedAlipay/IntegratedAlipay/AlipaySDK
Header Search Paths:
$(SRCROOT)/IntegratedAlipay/IntegratedAlipay/AlipayFiles
Library Search Paths:
$(PROJECT_DIR)/IntegratedAlipay/IntegratedAlipay/AlipaySDK

#include <openssl/asn1.h>这里报找不到的错误,就是上面信息没有配置或配置错导致的。
4,在info-URL Types 中添加一个,其中URL Schemes中的值和AlipayHeader.h中的kAppScheme的值保持一致。

出现的问题总结
1,如果这时点击按钮,还没有跳转到支付宝界面,不要急,有以下两种解决方法:
(1)在info.plist下找到Main storyboard file base name,删掉
(2)如果用到了storyboard 可以在调用AlipaySDK defaultService,后添加

NSArray *array = [[UIApplication sharedApplication] windows];
    UIWindow* win=[array objectAtIndex:0];
    [win setHidden:NO]; 

在返回结果后,再设置为显示

2,“系统繁忙 请稍后再试 ali64“,去确认订单信息(代码中的orderString)是否有误

//正确的订单信息
partner="xxxxx"&seller_id="xxxxx"&out_trade_no="DZSZ2NFIBQQKM5M"&subject="1"&body="我是测试数据"&total_fee="0.02"&notify_url="http://www.xxx.com"&service="mobile.securitypay.pay"&payment_type="1"&_input_charset="utf-8"&it_b_pay="30m"&show_url="m.alipay.com"&sign="aQJQ5JnU8Aqw990.000000D1J4KgSfgLbokbQdTbf4U0.000000HDoIZNg3IgsgtGPs0.0000004CKzZjCxqqsg78KUJxmuZCREaaE0.000000IBum5H34JBexkXaWrtP5O1pc7EZb0.0000006O5oAhSiw0Y2faaLNk2DYuCbTV1omeEv0Ugkyr9t78i4uJFgig0wXpqocOcw1936"&sign_type="RSA"

3,支付宝官方demo,编译出错
Build Setting-Valid Architectures-添加armv7s,armv7,arm64

4,由于虚拟机不能安装支付宝钱包,所以跳转到支付包钱包的功能,还未测试,以后会补上

demo地址:http://download.csdn.net/detail/shenhualxt/8482219

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值