哪位大佬有ios接原生支付教程,跪求
微信支付宝的对应文档不就是最好的教程!
啊,不接微信支付宝,接ios原生自带的iap
/**
请求在线商品,并存储于内存中
@param identifiers 产品id
*/
- (void)requestProducts:(NSSet*)identifiers success:(void (^)(NSArray *products, NSArray *invalidProductIdentifiers))successBlock failure:(void (^)(NSError *error))failureBlock{
NSSet *set = [[NSSet alloc] initWithArray:@[@"1", @"2", @"3", @"4", @"5", @"6"]];
[[XYStore defaultStore] requestProducts:set success:^(NSArray *products, NSArray *invalidProductIdentifiers){
NSLog(@"%@ - %@",products,invalidProductIdentifiers);
} failure:^(NSError *error) {
NSLog(@"%@",error.localizedDescription);
}];
}
/**
添加购买
*/
- (void)addPaymentProductId:(NSString *)productId{
[[XYStore defaultStore] addPayment:productId success:^(SKPaymentTransaction *transaction){
} failure:^(SKPaymentTransaction *transaction, NSError *error) {
NSLog(@"%@",error.localizedDescription);
}];
}
/**
恢复内购
*/
- (void)restoreTransactions{
[[XYStore defaultStore] restoreTransactionsOnSuccess:^(NSArray *transactions) {
NSLog(@"restore === %@", transactions);
} failure:^(NSError *error) {
NSLog(@"restore error === %@", error);
}];
}
/**
添加票据校验
外部票据校验(可以通过信任的服务器进行校验)
创建校验对象(建议创建单例对象,以便监听),遵守XYStoreReceiptVerifier协议
*/
- (void)verifyTransaction:(SKPaymentTransaction *)transaction
success:(void (^)(void))successBlock
failure:(void (^)(NSError *))failureBlock{
__weak typeof(self) weakSelf = self;
[[XYStore defaultStore] base64Receipt:^(NSString *base64Data) {
[[XYStore defaultStore] fetchProduct:transaction.payment.productIdentifier
success:^(SKProduct *product){
//外部校验请求
//[weakSelf callBackApple:product receiptData:base64Data success:successBlock failure:failureBlock];
} failure:failureBlock];
} failure:failureBlock];
}
测试一下 大概就这这些。
-(void)send{
//请求在线商品,并存储于内存中
/* NSSet *set = [[NSSet alloc] initWithArray:@[@"1000"]];
[[XYStore defaultStore] requestProducts:set success:^(NSArray *products, NSArray *invalidProductIdentifiers){
NSLog(@"%@ - %@",products,invalidProductIdentifiers);
} failure:^(NSError *error) {
NSLog(@"%@",error.localizedDescription);
}];*/
[self addPaymentProductId:@"1002"];
//[self restoreTransactions];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//外部验证 在此设置内购的票据校验,防止掉单问题的发生
//[[XYStore defaultStore] registerReceiptVerifier:[XYAppReceiptVerifier shareInstance]];
//内部验证 在此设置内购的票据校验,防止掉单问题的发生
[[XYStore defaultStore] registerReceiptVerifier:[XYStoreiTunesReceiptVerifier shareInstance]];
//XYStoreiTunesReceiptVerifier中提供对自动续期产品的订阅过期的判断
// 在此设置内购的票据校验,防止掉单问题的发生 这儿有两种一种存在UserDefault 另外一种存在于Keychain中
[[XYStore defaultStore] registerTransactionPersistor:[XYStoreUserDefaultsPersistence shareInstance]];//存在UserDefault
//[[XYStore defaultStore] registerTransactionPersistor:[XYStoreKeychainPersistence shareInstance]];//存在Keychain中
// Override point for customization after application launch.
return YES;
}