使用 ParseServer/Bitnami 通过 Android 接受 Stripe 付款
Posted
技术标签:
【中文标题】使用 ParseServer/Bitnami 通过 Android 接受 Stripe 付款【英文标题】:Accepting Stripe payments with Android using ParseServer/Bitnami 【发布时间】:2018-02-15 23:45:52 【问题描述】:我希望一切都好。我对编程很陌生,而且我的学校没有提供适当级别的 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();
);
【问题讨论】:
请提供minimal reproducible example 说明您尝试过的方法以及遇到的问题。 【参考方案1】:因此,要建立交易或创建费用(作为一次性费用或通过定期订阅)实际上有两个阶段。
第一阶段称为“捕获和标记化阶段”。这就是我们使用有关信用卡(或其他支付来源)的信息来创建一个特殊字符串来表示卡的实际详细信息的地方。我喜欢将这些标记更多地视为一个代码字(也许我只是看太多电影)——午夜的乌鸦飞。这是一种让您和 Stripe 都知道您指的是哪张卡片的特殊方式,而其他任何人都无法窃听并找出任何敏感信息。您可以使用 Stripe.js [1]、Elements [2]、Checkout [3] 或您的移动 SDK [4][5] 来完成此阶段。此阶段使用您的可发布 API 密钥并发生在前端(html/javascript 或移动设备)。
第二个阶段是“存储或充电阶段”。您可以使用我们之前制作的特殊令牌或代码字,然后 (a) 收取特定金额的费用或 (b) 将其附加到客户并存储以备后用。这两种方法都要求您在后端使用 Stripe API。另一种方法是使用插件或集成为您完成所有这些工作。此阶段使用您的 API 密钥并发生在后端 Web 服务(php、Python、Ruby 等)上
要创建定期收费或将付款来源附加到客户,您将使用创建客户 [6] API 端点。 source
-argument 将是令牌 ID,在第一阶段生成。然后,您将使用 Create a Charge [7] API Endpoint,其 customer
-参数等于您创建的客户 ID。
或者,要创建一次性收费,您可以简单地将 source
-参数传递给不带 customer
-参数的 Create a Charge [7] API 端点。
意思——你在这里错过了最后一步——你需要将检索到的令牌传递给你控制的后端服务器以进行收费。
希望有帮助!
[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
【讨论】:
谢谢。我已经找到了一种使用上述链接和其他链接创建一次性交易的方法。我正在为订阅创建定期付款。 Korben,我一直在解决这个问题,但我仍然在这堵砖墙上。我正在使用带有 ParseServer 的 Back4App,它允许我使用 Javascript 函数,但我不知道 Javascript。我找到了示例代码,它引导我朝着正确的方向前进,但并不完全是我需要去的地方。 Stripe 有优秀的 Java 示例,但这是服务器端代码,我不知道发布此代码的适当平台,也不知道如何从我的 Android 应用程序调用它。请帮忙,伙计。我真的很感激。以上是关于使用 ParseServer/Bitnami 通过 Android 接受 Stripe 付款的主要内容,如果未能解决你的问题,请参考以下文章
通过邮递员通过 API 使用 Rails 主动存储上传文件(.pdf、.jpg 等)? (不通过 Rails 视图)
通过 Join-Where-Group 通过选择查询避免使用临时的正确索引;使用文件排序
如何使用 SLRequest 通过 iOS 更改为通过 <AppName>
使用 mailR 包通过 R 通过 Outlook 发送经过身份验证的邮件