3.1.0
注意
该门户网站正在开发中。文档的完整版本请看这里.
实现示例
为了正确集成支付,建议您参阅位于 example 文件夹中的示例应用程序:
https://gitflic.ru/project/rustore/react-native-rustore-billing-sdk/file?file=example
支付条件
为了进行支付,必须遵守以下条件:
- 用户的设备上必须安装 RuStore。
- 用户必须在 RuStore 中获得授权。
- 用户和应用程序不应在RuStore中被封锁。
- 应用程序必须在 RuStore 控制台中启用购买功能。
在项目中集成
要将包连接到项目,您需要执行以下命令:
// HTTPSnpm install git+https: //git \@gitflic.ru:rustore /react-native-rustore-billing-sdk .git// SSHnpm install git+ ssh : //git \@gitflic.ru:rustore /react-native-rustore-billing-sdk .git
处理deeplink
为了通过第三方应用程序(如快速支付系统(SBP)或SberPay)正确进行支付,您需要正确实现 deeplink 的处理。为此,您需要在 AndroidManifest.xml 中指定带有您项目方案的 intent-filter:
\< activity \`\`android:name = \".sample.MainActivity\" \> \`\`\< intent-filter \> \`\`\< action android:name = \"android.intent.action.MAIN\" /\> \`\`\< category android:name = \"android.intent.category.LAUNCHER\" /\> \`\`\</ intent-filter \> \`\`\< intent-filter \> \`\`\< action android:name = \"android.intent.action.VIEW\" /\> \`\`\< category android:name = \"android.intent.category.DEFAULT\" /\> \`\`\< category android:name = \"android.intent.category.BROWSABLE\" /\> \`\`\< data android:scheme = \"yourappscheme\" /\> \`\`\</ intent-filter \> \</ activity \>
中"yourappscheme" - 是您的 deeplink 方案,可以更改为其他方案。
这个方案应与 RustoreBillingClient. initialize() 方法中传递的方案匹配。
初始化
在调用库的方法之前,需要先进行其初始化。为了初始化,请调用 RustoreBillingClient.initialize() 方法:
try { \`\`RustoreBillingClient.initialize({ \`\`consoleApplicationId: \'appId\' , \`\`deeplinkScheme: \'scheme\' , \`\`}); \`\`\`console.log(initialize success: \${result});\`\`\<br\>} catch(err) {\<br\> \`console.log(\`initialize err: \${err}\`);}
consoleApplicationId
- 来自RuStore开发者控制台的应用程序代码(例如:https://console.rustore.ru/apps/123456)。deeplinkScheme
- 用于通过第三方应用程序支付后返回您的应用程序的deeplink方案 (例如通过 SberPay 或快速支付系统(SBP))。SDK 会为这个方案生成它自己的宿主。
要的是,传递给 deeplinkScheme 的 deeplink 方案必须与 AndroidManifest.xml 中上面的"处理 deeplink"部分指定的方案匹配。
检查支付功能的可用性
为了检查支付的可用性,需要满足以下条件:
- 用户的设备上必须安装 RuStore。
- RuStore 必须支持支付功能。
- 用户必须在 RuStore 中获得授权。
- 用户和应用程序不应在RuStore中被封锁。
- 应用程序必须在 RuStore 控制台中启用购买功能。
果所有条件都满足,RustoreBillingClient.checkPurchasesAvailability() 方法将返回 true 值。
try { \`\`const isAvailable = await RustoreBillingClient.checkPurchasesAvailability(); \`\`\`console.log(available success \${isAvailable});\`\`\<br\>} catch(err) {\<br\> \`console.log(\`available error \${err}\`);}