码迷,mamicode.com
首页 > 移动开发 > 详细

支付宝(移动支付)

时间:2015-07-20 20:59:35      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:

支付宝(移动支付)


1、支付宝 快捷支付(无线申请: https://b.alipay.com/order/productDetail.htm?productId=2014110308141993

申请条件(二选一):1、 使用 企业支付宝账号注册企业账号

  2个体工商户(需要上传营业执照)


集成支付宝:

1、创建Xcode工程,导入以下文件:

AlipaySDK.bundle

AlipaySDK.framework

libcrypto.a

libssl.a


openssl文件夹

Util文件夹


PartnerConfig.h 配置文件


 2、导入依赖库

技术分享


  4 导入Order.h   Order.m(订单类)


  5、 要支付的类文件

//导入订单类

#import "Order.h"

//数据签名类

#import "DataSigner.h"

//支付SDK

#import <AlipaySDK/AlipaySDK.h>

//配置文件

#import "PartnerConfig.h"


#pragma  mark - 支付方法

-(void)payBtnClick

{

    

    NSString *partner = PartnerID; //支付宝分配给商户的ID

    NSString *seller = SellerID; //收款支付宝账号(用于收??

    NSString *privateKey = PartnerPrivKey; //商户私钥

    

    /*

     * 生成订单信息及签名

     */

    //将商品信息赋予Order的成员变量

    Order *order = [[Order alloc] init];

    order.partner = partner; //商户ID

    order.seller = seller; //收款支付宝账号

    order.tradeNO = [self generateTradeNO]; //订单ID(由商家自行制定)

    order.productName = @"苹果"; //商品标题

    order.productDescription = @"5斤苹果"; //商品描述

    order.amount = [NSString stringWithFormat:@"%.2f", 0.01]; //商品价格(重要)

    order.notifyURL@"http://www.xxx.com"; //回调URL(通知服务器端交易结果)(重要)

    // 1777297988

    order.service = @"mobile.securitypay.pay";

    order.paymentType = @"1";

    order.inputCharset = @"utf-8";

    order.itBPay = @"30m";

    order.showUrl = @"m.alipay.com";

    

    // 应用注册scheme, AlipayDEMO-Info.plist定义URL types

    NSString *appScheme = @"alisdkdemo";

    

    //将商品信息拼接成字符串

    NSString *orderSpec = [order description];

    NSLog(@"orderSpec = %@",orderSpec);

    

    //获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,只需要遵循RSA签名规范,并将签名字符串base64编码和UrlEncode

    id<DataSigner> 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) {

        

        NSLog(@"callback reslut = %@",resultDic);

        

    }];

    

}


#pragma mark   ============== 产生随机订单号 ==============

- (NSString *)generateTradeNO

{

    static int kNumber = 15;

    

    NSString *sourceStr = @"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

    NSMutableString *resultStr = [[NSMutableString alloc] init];

    srand((unsigned)time(0));

    for (int i = 0; i < kNumber; i++)

    {

        unsigned index = rand() % [sourceStr length];

        NSString *oneStr = [sourceStr substringWithRange:NSMakeRange(index, 1)];

        [resultStr appendString:oneStr];

    }

    return resultStr;

}




1、购物流程:

1、加入购物车;


2、购物车中可能有多件商品(购物清单),收货人信息,收货地址信息,发票信息,备注等等, 生成订单(提交后台服务器);


3、从服务器返回一个订单号、商品名称、商品描述等信息 ;


4、再支付。

支付宝(移动支付)

标签:

原文地址:http://www.cnblogs.com/modaoyicheng/p/4662404.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!