Coder Social home page Coder Social logo

beiliao-mobile / bliap Goto Github PK

View Code? Open in Web Editor NEW
300.0 300.0 63.0 214 KB

处理了 IAP 九大坑, 并且封装了收据验证队列, 最大限度保证移动端 IAP 安全的示例代码.

Home Page: https://juejin.im/user/5941fa488d6d810058c0d4df

License: MIT License

Objective-C 99.84% Ruby 0.16%

bliap's People

Contributors

beiliao-mobile avatar dito010 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

bliap's Issues

简化流程

你好, 我们的后台工程师说, 想简化一下流程, 我这边支付成功拿到收据后, 上传给公司服务器, 然后他到苹果服务器验证收据, 验证成功后再创建订单, 但是只返回是否验证成功的消息给app, 不返回订单号了. 请问如果按这个流程的话, 走得通吗?

BLPaymentVerifyTaskStateCancel = 3

BLPaymentVerifyTaskStateCancel = 3 // 取消. 一旦取消, 这个 task 就不能再次调用 -start 方法重新执行了.

一旦把订单设置成这个状态,会怎么样,这个订单还能恢复吗?

bl_fetchAllPaymentTransactionModelsForUser中的线程等待的问题

bl_fetchAllPaymentTransactionModelsForUser中调用[UICKeyChainStore dataForKey:error:],内部实现libxpc会 调用一个同步等待函数xpc_connection_send_message_with_reply_sync,导致主线程阻塞,所以想问[UICKeyChainStore dataForKey:error:]有必要一定要放主线程吗

尝试调起一个被取消的 task

每次启动应用为什么会出现一直进入这个地方无法跳出验证:
if (self.taskState == BLPaymentVerifyTaskStateCancel) {
NSLog(@"尝试调起一个被取消的 task 😢");
return;
}
好像是因为从 appStoreReceiptURL 取出来后放进队列验证时,收到 IAP 的回调

  • (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray<SKPaymentTransaction *> *)transactions
    然后就重置队列,导致刚从 appStoreReceiptURL 取出来的 taskState 被置为 BLPaymentVerifyTaskStateCancel,所以就一直这样跳不出来了。

这个怎么解决啊

keychain 存储失败 OSStatus error: [-34018] 大家有遇到吗怎么解决

2018-05-22 12:26:00.125 Voice[8367:1811366] 交易成功...:<SKPaymentTransaction: 0x1299f8630>
2018-05-22 12:26:00.210 Voice[8367:1811366] OSStatus error: [-34018] Security error has occurred.
2018-05-22 12:26:00.211 Voice[8367:1811366] transationModels:(null),self.userid:30000107,Error Domain=com.wallet.error Code=0 "Data of keychain is empty" UserInfo={NSLocalizedDescription=Data of keychain is empty}
2018-05-22 12:26:00.215 Voice[8367:1811366] OSStatus error: [-34018] Security error has occurred.
2018-05-22 12:26:00.216 Voice[8367:1811366] pushPaymentTransactionIntoOperationTaskQueueIfNeed:<SKPaymentTransaction: 0x1299f8630>,order_id:f7280b85-9575-422e-a702-9acf70b4663e
2018-05-22 12:26:00.221 Voice[8367:1811366] OSStatus error: [-34018] Security error has occurred.
2018-05-22 12:26:00.221 Voice[8367:1811366] self.verifyManager:<IAPVerifyManager: 0x1292d0160>
2018-05-22 12:26:00.226 Voice[8367:1811366] OSStatus error: [-34018] Security error has occurred.
2018-05-22 12:26:00.229 Voice[8367:1811366] OSStatus error: [-34018] Security error has occurred.
2018-05-22 12:26:00.233 Voice[8367:1811366] OSStatus error: [-34018] Security error has occurred.
2018-05-22 12:26:00.238 Voice[8367:1811366] OSStatus error: [-34018] Security error has occurred.
2018-05-22 12:26:00.241 Voice[8367:1811366] OSStatus error: [-34018] Security error has occurred.
2018-05-22 12:26:00.250 Voice[8367:1811366] cancelAllTaskAndResetAllModelsThenStartFirstTaskIfNeed
2018-05-22 12:26:00.256 Voice[8367:1811366] OSStatus error: [-34018] Security error has occurred.
2018-05-22 12:26:00.256 Voice[8367:1811366] transationModels:(null),self.userid:30000107,Error Domain=com.wallet.error Code=0 "Data of keychain is empty" UserInfo={NSLocalizedDescription=Data of keychain is empty}
2018-05-22 12:26:00.256 Voice[8367:1811366] self.operationTaskQueue:(null)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.