繁体   English   中英

使用ParseServer / Bitnami在Android上接受Stripe付款

[英]Accepting Stripe payments with Android using ParseServer/Bitnami

我希望一切都好。 我刚接触编程,因此我的学校没有提供适当水平的Android开发来教我需要知道的知识。 因此,请不要因为“准则”而将其标记为低,我只是在寻求帮助。 我的讲师拒绝提供帮助,因为法律上不允许他们教没有提供的内容。 因此,请,请不要将此标记为低。

我正在尝试在移动应用程序上接受Stripe付款。 我正在使用ParseServer / Bitnami,并且已经足够发送和检索tokenId以对卡收费。 我只是还没有弄清楚如何为卡充值。 请帮忙。

    Card userCard = new Card(num, expiryMonth, expiryYear, cvc);

        //  Test the data.
        if (userCard.validateCard()) {
            Stripe stripe = new Stripe(CardActivity.this, "pk_live_----REMOVED FOR SECURITY");
            stripe.createToken(
                    userCard,
                    new TokenCallback() {
                        public void onSuccess(final Token token) {
                            //  Get the current user.
                            ParseUser user = ParseUser.getCurrentUser();

                            String tokenId = token.getId();
                            //  Update the token.
                            user.put("tokenId", tokenId);

                            /*Map<String, Object> params = new HashMap<>();
                            params.put("currency", "usd");
                            params.put("interval", "month");
                            params.put("name", "Membership");
                            params.put("amount", 9.99);
                            params.put("id", user.getObjectId());*/


                            user.saveInBackground(new SaveCallback() {
                                @Override
                                public void done(ParseException e) {
                                    Toast.makeText(CardActivity.this, "Success", Toast.LENGTH_SHORT).show();

                                }
                            });
                        }
                        public void onError(Exception error) {
                            // Show error message
                            Toast.makeText(CardActivity.this,
                                    error.getMessage(),
                                    Toast.LENGTH_LONG
                            ).show();
                        }
                    }
            );
        }

因此,要建立交易或创建费用(一次性费用或通过定期订阅),实际上有两个阶段。

第一阶段称为“捕获和令牌化阶段”。 在这里,我们使用有关信用卡(或其他付款来源)的信息来创建一个特殊的字符串来表示信用卡的实际详细信息。 我想将这些标记更多地看作是一个代码字(也许我只是看了太多电影)-《乌鸦在午夜飞翔》。 这是您和Stripe知道您所指的卡的一种特殊方式,而其他任何人都无法窃听并弄清任何敏感信息。 您可以使用Stripe.js [1],Elements [2],Checkout [3]或移动SDK [4] [5]完成此阶段。 此阶段使用您的可发布API密钥,并且发生在前端(HTML / Javascript或移动设备)上。

第二阶段是“存储或充电阶段”。 您可以采用我们之前制作的特殊令牌或代码字,然后(a)向其收取一定金额的费用,或(b)将其附加到客户上并存储以备后用。 两种方法都要求您在后端使用Stripe API。 替代方法是使用插件或集成为您完成所有这些工作。 此阶段使用您的Secret API密钥,并且发生在后端Web服务(PHP,Python,Ruby等)上

要创建经常性费用或将付款来源附加到客户,您可以使用创建客户[6] API端点。 source参数是在第一阶段生成的令牌ID。 然后,您可以使用带有customer参数(等于您创建的客户ID)的Create a Charge [7] API端点。

另外,要创建一次性费用,您可以简单地将source参数传递给创建费用[7] API端点,而无需customer传递参数。

意思是-您错过了这里的最后一步-您需要将检索到的令牌传递到您控制的后端服务器以进行收费。

希望有帮助!

[1] https://stripe.com/docs/stripe.js/v2
[2] https://stripe.com/docs/elements
[3] https://stripe.com/docs/checkout
[4] https://stripe.com/docs/mobile/ios
[5] https://stripe.com/docs/mobile/android
[6] https://stripe.com/docs/api#create_customer
[7] https://stripe.com/docs/api#create_charge

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM