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; }
</pre>
本文由用戶 ww24 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!