iOS 支付宝支付主要代码

/*

*点击获取prodcut实例并初始化订单信息

*/

Product*product = [[Product alloc] init];

product.subject=@”机票”;

product.body=@”乘客机票”;

product.price=0.01f;

/*

*商户的唯一的parnter和seller。

*签约后,支付宝会为每个商户分配一个唯一的parnter和seller。

*/

/=======================需要填写商户app申请的===================================/

NSString*partner =alipayPartner;

NSString*seller =alipaySeller;

NSString*privateKey =alipayPrivateKey;

//partner和seller获取失败,提示

if([partner length] ==0|| [seller length] ==0)

{

UIAlertView*alert = [[UIAlertView alloc]initWithTitle:@”提示”

message:@”缺少partner或者seller。”

delegate:self

cancelButtonTitle:@”确定”

otherButtonTitles:nil];

[alertshow];

return;

}
/*

*生成订单信息及签名

*/

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

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

aliOrder.partner= partner;

aliOrder.seller= seller;

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

aliOrder.productName= product.subject;//商品标题这个参数是这笔交易的名称,因为这笔交易不一定只买一件商品。它的作用不仅是在收银台里可以清晰的显示出来,而且在支付宝的账户的交易明细的列表里,它也是排在第一列,由此可推测出,它有财务对账、作为交易查询的筛选条件等诸多作用。非常重要

aliOrder.productDescription= product.body;//订单描述

aliOrder.amount= [NSStringstringWithFormat:@”%.2f”,product.price];//商品价格

aliOrder.notifyURL=@”http://www.xxx.com“;//回调URL

aliOrder.service=@”mobile.securitypay.pay”;//服务名称(参数service)

aliOrder.paymentType=@”1”;//支付宝类型.1代表商品购买

aliOrder.inputCharset=@”utf-8”;//编码类型

aliOrder.itBPay=@”30m”;

aliOrder.showUrl=@”m.alipay.com”;//展示地址,即在支付宝页面时商品名称旁边的“详情”的链接地址

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

NSString*appScheme =@”alipayForSpringAirlines”;

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

NSString*orderSpec = [aliOrderdescription];

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

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

id signer =CreateRSADataSigner(privateKey);

NSString*signedString = [signersignString:orderSpec];

//将签名成功字符串格式化为订单字符串,请严格按照该格式

NSString*orderString =nil;

if(signedString !=nil) {

orderString = [NSStringstringWithFormat:@”%@&sign=\”%@\”&sign_type=\”%@\”“,

orderSpec, signedString,@”RSA”];

[[AlipaySDKdefaultService]payOrder:orderStringfromScheme:appSchemecallback:^(NSDictionary*resultDic) {

NSLog(@”reslut = %@”,resultDic);

}];

}
- (NSString*)generateTradeNO

{ static int kNumber =15;

NSString*sourceStr =@”0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”;

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

srand(time(0));

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

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

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

 [resultStr appendString:oneStr];  

}
return resultStr;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值