内购模块

https://wilddylan.github.io/2016/09/23/IAP/
文档:
京东支付

微信支付

ios 内购1
ios 内购2
ios 内购3
ios 内购4

官方文档源码 ----- 点击传送

  • 官方文档:
    使在应用程序购买(IOS,tvos,MAC)

在应用程序购买商店直接嵌入到你的应用程序,允许你连接到存储和安全的支付流程从用户。你可以使用内置购买收集支付功能增强或增加内容的可用的应用程序。在你的Xcode项目配置这种技术后,您将其配置在iTunes Connect。你也可以使用iTunes Connect来创建你的应用程序内购买。

**在应用程序购买使
**
在应用程序内购买功能窗格中,如果没有启用,请在应用程序内购买部分开关。
https://developer.apple.com/library/ios/technotes/tn2259/_index.html
[图片上传失败...(image-fb1e0b-1511268395331)]

Xcode自动规定你的应用程序使用应用程序内购买并添加storekit框架到你的项目,你。

如何写你的应用程序内购买代码,读
购买程序指南
。创建一个应用程序记录在iTunes进入明确的App ID连接,读取
添加新的应用程序
进入
iTunes Connect开发者指南
。创建和上传应用内购买、阅读
应用程序内购买的iTunes Connect配置指南
.

  • 自己曾经做过内购的一些截图:
1.png
沙箱测试.png
沙箱注册.png

Snip20160617_1.png

官方文档 --- 对应的截图

Snip20160617_2.png

Snip20160617_3.png

Snip20160617_4.png

Snip20160617_5.png

在准备提交里的点击:

11.png
  • 然后,往下滚动,会发现一个购买 ,接着点击 “+” 号,然后,就出现你创建的内购商品。最后,保存,就可以了。

测试我们的工程了:

需要注意:你在开发者账号的创建id 号和你的 Bundle Identifiler 要一致。否则测试不成功。
1、


Snip20160702_2.png

2、

Snip20160702_3.png

3、

Snip20160702_4.png

需注意:

注意:沙盒账号支付时,连接到苹果接口是不同的,对比一下:
苹果的接口官网
// 官网原文
Submit this JSON object as the payload of an HTTP POST request. In the test environment, usehttps://sandbox.itunes.apple.com/verifyReceiptas the URL. In production, usehttps://buy.itunes.apple.com/verifyReceiptas the URL.
--- 翻译:
在测试环境中,使用https://sandbox.itunes.apple.com/verifyreceipt 作为URL。
在生产中,使用https://buy.itunes.apple.com/verifyreceipt 作为URL。

--- 白话:
https://sandbox.itunes.apple.com/verifyReceipt 沙盒订单验证接口
https://buy.itunes.apple.com/verifyReceipt 正式订单验证接口

经常遇到的常见问题:

0、为啥我的代码是对的,也没报错?打印的数据也有了,就是没有弹出对话框?

答:把你的设备上的账号注销掉就可以了。

1、app 里已经可以拿到IAP数据了,如上图,但在真机里测试时,老是提示 :“找不到您输入的Apple ID,或者您的密码不正确,请再试一次” 之类的提示!

答:需要使用 测试账号的,由于你都没上线, 正式的账号没法购买的。(另外一种就是密码不对,几乎不是这个错。)

2、“无法连接到 iTunes Store”。!

这个错误一般是由以下2个原因引起的:
(1)购买商品时,Product ID写错了。
(2)App ID中,一定要打开IAP的Development配置一致。(上面已有截图)
(3)如果你使用沙盒测试的账号(不存在的邮箱,假的)。在真机里的 iTunes Store 与 App Store 把之前的账号注销掉,然后,使用沙盒测试的账号,这是你会发现,“无法连接到 iTunes Store”。---- 这说明我们的沙盒账号是不存在的嘛!但是可以测试哦!

  • 你也许有疑惑?----》为什么要使用假的?(个人理解,不足之处请多多请教)
  • 因为,使用不存在的邮箱的话,也就是假的邮箱,你可以在开发测试阶段就可以使用真机测试了。
  • 如果使用的是真实的,也就是可以在AppStore 里登陆的账号的话。意味着2点:
    a、要求APP 上线才能测试。
    b、如果不设置成 沙盒测试的话,那真的是扣你钱的。

** 小结:在开发阶段,建议创建一个假的沙盒账号。

3、如果上面2步骤,确保是对的话,那么,你在沙河测试项里添加一个或多个测试账号随便写,可以是假的,最好是假的:例如:testPay@qq.com ,然后,把真机里的原来的账号注销掉!(一定要注销),紧接着,执行我们的工程,此时!恭喜你,是不是弹出了你喜欢的输入框了?然后 把沙河测试账号 testPay@qq.com 填入,就OK了。测试成功!

PS: 也许你的测试还不成功的话,嗯!这个 锦囊 一定可以帮得上忙的。

下面让我们来认识几个重要的类:

SKProduct: --------------》需导入 @import StoreKit;

objects are returned as part of anSKProductsResponse
object. Each product object provides information about a product you previously registered in iTunes Connect.

-Getting Product Attributes 属性

@property(nonatomic, readonly) NSString *localizedDescription NS_AVAILABLE_IOS(3_0);

@property(nonatomic, readonly) NSString *localizedTitle NS_AVAILABLE_IOS(3_0);

@property(nonatomic, readonly) NSDecimalNumber *price NS_AVAILABLE_IOS(3_0);

@property(nonatomic, readonly) NSLocale *priceLocale NS_AVAILABLE_IOS(3_0);

@property(nonatomic, readonly) NSString *productIdentifier NS_AVAILABLE_IOS(3_0);

  // YES if this product has content downloadable using SKDownload
  @property(nonatomic, readonly, getter=isDownloadable) BOOL downloadable NS_AVAILABLE_IOS(6_0);

// Sizes in bytes (NSNumber [long long]) of the downloads available for this product
@property(nonatomic, readonly) NSArray<NSNumber *> *downloadContentLengths NS_AVAILABLE_IOS(6_0);

// Version of the downloadable content
@property(nonatomic, readonly) NSString *downloadContentVersion NS_AVAILABLE_IOS(6_0);

SKPayment 付款

这个skpayment类定义了苹果App Store的应用程序提供附加功能处理支付请求。付款将字符串,标识一个特定的产品,这些物品的用户愿意购买的数量。

  • 下面的是苹果推荐的最佳内购代码逻辑(我是从苹果文档里copy过来的):

    -(void)fetchProductInformation
    
    {
        NSSet *productID = [NSSet setWithObject:@"product_identifier"];
    
      // Create a product request(创建内购商品请求)
      SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:productID];
    
      request.delegate = self;
    
        // Send the product request to the App Store,向AppStore发送购买请求
        [request start];
    
    }
    
    - (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
    
    {
    
    // 在获取商品的内容之前,要确保产品数组不是空的
    
      if ([response.products count] > 0) {
    
      // product is an instance of SKProduct(就是实例化)
    
      self.product = [response.products firstObject];
    
      NSLog(@"Name: %@", self.product.localizedTitle);
    
        }
    
      }
    
    // 点击购买
    - (IBAction)purchase:(id)sender
    
    {
    
        if (self.product != nil) {
    
        SKMutablePayment *payment = [SKMutablePayment paymentWithProduct:self.product];
    
        [[SKPaymentQueue defaultQueue] addPayment:payment];
    
        }
    
    }
    

或许你会遇到这样的问题: iOS_iTunesConnect协议更新导致无法构建新版本(协议、税务和银行业务)

-- 由于时间关系没能把Demo 存放到GitHub 上。如果你喜欢本篇文章,请给个赞!谢谢!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容