清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
/* *点击获取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; }