我环顾四周,似乎有几个人遇到了这个问题,但似乎没有人解决它:
Adding Apple in-app purchase to Electron HTML/JS app
https://github.com/electron/electron/issues/3745
https://discuss.atom.io/t/osx-in-app-purchases-in-electron/22885
有人建议使用此Node到Objective-C桥来执行此操作:
https://github.com/TooTallNate/NodObjC
其他人建议使用这个应用内库,但从我看到的情况来看,它只会验证收据:
https://github.com/voltrue2/in-app-purchase
有没有人真正设法在Mac App Store的Electron应用程序中实现应用内购买?
你是怎么做到的?
如果没有人这样做,那根本不可能吗?
答案 0 :(得分:1)
最后,我将应用内购买直接添加到Electron。
请参阅https://electronjs.org/docs/tutorial/in-app-purchases
我已经实现了这个解决方案,它可以在开发中使用(尚未在生产中测试)。
require('electron').shell.openItem
或require('child_process').spawn('./InAppPurchase.app/Contents/MacOS/InAppPurchase');
开始应用内购买。这绝对不是一个干净的解决方案,但似乎有效...
我认为它也可以用NodObjC完成。但是,与第一种解决方案相比,这个lib非常重。
直接向Electron添加应用内购买。
如果我可以通过IAP在Mac Apple Store上发布我的Electron应用程序,或者我找到了其他解决方案,我会通知您。
答案 1 :(得分:0)
除user108828之外,我还可以提出更多想法来解决您的问题:
您可以使用Xcode在obj-C / C ++ / C中将MAS收据验证实现为动态库,然后通过ToTallNate's node-ffi将其包含在项目中。为了实现,您可以使用任何可以在网上轻松找到的解决方案。
执行收据验证的另一种方法是创建包含node addon和openssl库的自制objective-c runtime。对于此解决方案,您可能还需要包含CoreFoundation和/或其他一些苹果框架。因此,您将能够在纯C / C ++中实现验证,并将其封装在节点模块中。
您的dylib / node插件的API设计完全取决于您,应该保密。
祝你好运!