• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - Stripe 和 Parse SDK 存储信用卡

[复制链接]
菜鸟教程小白 发表于 2022-12-12 14:22:37 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试将用户信用卡存储到 strip 中。我有一个使用支付工具包 PTKView 设置的表单。然后,一旦用户点击保存按钮,我就会创建 Stripe 所需的 STPToken。生成 token 后,我尝试将带有用户 objectId 的 token 保存到 Stripe 作为客户。我确定问题出在服务器代码中。

一些背景知识,我使用 Parse SDK 的云代码作为我的服务器,所以我正在处理 javascript .

这里我从表单中获取信息,创建一个STPCard,然后生成一个 token 。

PTKCard* card = self.cardView.card; // self.cardView is the PTKView
STPCard *stpcard = [[STPCard alloc] init];
stpcard.number = card.number;
stpcard.expMonth = card.expMonth;
stpcard.expYear = card.expYear;
stpcard.cvc = card.cvc;

[[STPAPIClient sharedClient] createTokenWithCard:stpcard
                                      completion:^(STPToken *token, NSError *error) {
                                          if (error) {
                                              NSLog(@"error");
                                          } else {
                                              [self createBackendChargeWithToken:token];
                                          }
                                      }];

生成 token 后,我将其发送到 Parse,在那里我实现了服务器端代码来处理创建客户并将其保存到 Stripe。

- (void)createBackendChargeWithTokenSTPToken *)token
{

    NSDictionary *productInfo = @{@"cardToken": [NSString stringWithFormat"%@",token],
                                  @"objectId": [[PFUser currentUser] objectId]};


    [PFCloud callFunctionInBackground"saveCardInformation"
                       withParameters:productInfo
                                block:^(id object, NSError *error) {
                                    if (error) {
                                        NSLog(@"error");
                                        return ;
                                    }

                                    [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Success", @"Success")
                                                                message:nil
                                                               delegate:nil
                                                      cancelButtonTitle:NSLocalizedString(@"OK", @"OK")
                                                      otherButtonTitles:nil] show];

                                }];
}

现在我处理云代码中传递的 token :

var Stripe = require('stripe');
Stripe.initialize(my_key);


Parse.Cloud.define("saveCardInformation", function(request, response) {

    Stripe.Customers.create({
      source: request.params.cardToken,
    },{
      success: function(httpResponse) {
        response.success("Customer created!");
      },
      error: function(httpResponse) {
        response.error(httpResponse.message);
      }
    });

});

然后我收到回复说:

Error: There is no token with ID tok_15afWSDOYfVZdgZvh6qSvmmm (test mode). (Code: 141, Version: 1.6.0)

为什么这么说?据我了解,我只是在创建一个用户,所以当然没有具有指定 ID 的 token 。我知道它主要在 javascript 云代码中,但我不确定如何处理这个......有人有什么想法吗?



Best Answer-推荐答案


好的...我犯了一个小错误...显然我需要访问 STPTokens tokenId 属性...

NSDictionary *productInfo = @{@"cardToken": token.tokenId,
                              @"objectId": [[PFUser currentUser] objectId]};

需要彻底阅读我的代码。

关于ios - Stripe 和 Parse SDK 存储信用卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28757557/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap