直接上代码.....
.h文件:
.mm文件:
.h文件:
- #import <StoreKit/StoreKit.h>
- @interface SDKApplePay : NSObject <SKProductsRequestDelegate,SKPaymentTransactionObserver>{
- SKProductsRequest* _curProductRequest;
- NSMutableDictionary* _curActualProducts; //实际可购买列表
- NSString* _curAppId;
- bool receiptValid;
- #if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_8_0
- UIAlertView *alertViewTest;
- #else
- UIAlertController *alertController;
- #endif
- }
- + (SDKApplePay*) getInstance;
- - (void) initSDK:(UIViewController *)viewController sdkName:(NSString *)sdkName;
- - (void)requestProductsValidate:(NSDictionary*)productsDict;
- - (void)requestProductsPay:(NSString*)productsDict;
- @end
.mm文件:
- #import "SDKApplePay.h"
- #import "Util.h"
- #import "JSCallObjectCBridge.h"
- #define MyServerURL @"你的服务器网址"//服务器请求的地址
- #define DebugModel @"0" //@"sandbox" 沙盒测试 @"0" 正常购买
- @implementation SDKApplePay
- static NSString* const SDK_IAP_PREFIX_PRODUCT=@"com.xxxx.xxxx.";
- static SDKApplePay* curInstance=nil;
- + (SDKApplePay*) getInstance
- {
- if(nil==curInstance)
- {
- curInstance = [[SDKApplePay alloc] init];
- }
- return curInstance;
- }
- - (void)requestProductsValidate:(NSDictionary*)productsDict
- {
- NSMutableSet* productsSet = [NSMutableSet set];
- for(NSString* key in productsDict)
- {
- [productsSet addObject:[NSString stringWithFormat:@"%@%@",SDK_IAP_PREFIX_PRODUCT,key]];
- }
- _curProductRequest=[[SKProductsRequest alloc] initWithProductIdentifiers:productsSet];
- _curProductRequest.delegate=self;
- [_curProductRequest start];
- }
- //购买时的调用方法
- - (void)requestProductsPay:(NSString*)productsDict
- {
- if(nil==productsDict){
- //参数为空,调用违法
- return;
- }
- if([SKPaymentQueue canMakePayments])
- {
- NSString* curProductIdentifier = nil;
- if(nil!=productsDict){
- curProductIdentifier = productsDict;
- }
- SKProduct* actualProduct = [_curActualProducts objectForKey:curProductIdentifier];
- SKPayment* payment = [SKPayment paymentWithProduct:actualProduct];
- [[SKPaymentQueue defaultQueue] addPayment:payment];
- }else
- {
- //TODO 通知用户无法进行购买
- }
- }
- //-----------------override---------------