标签: stripe-payments

在条带按钮上设置数据属性

我无法弄清楚这一点.我检查了有关设置数据属性的其他问题,似乎是一件非常棘手的事情.

条纹按钮数量纯粹是为了美观,我每次用户更新数量选择框时都试图设置它('数据量').

每次我更改数量时选择一个警报给出正确的数量,如果我检查dom,'data-amount'属性似乎设置正确,但当我点击条纹按钮时,模态显示默认数据量,即没有.

有人知道怎么做吗?

视图(表单,选择输入未显示)

<div class="stripe-controls" align="center">
  <script src="https://button.stripe.com/v1/button.js" class="stripe-button"
      data-key="ENV['STRIPE_PUBLIC_KEY'] %>" data-amount="">
  </script>
</div>
Run Code Online (Sandbox Code Playgroud)

CoffeeScript的

$ ->
  $('#order_quantity').click(orderTotal)
  orderTotal()

orderTotal = ->
  quantity = $('#order_quantity').val()
  price = $('#ticket-price').data('url')
  total = quantity * price
  $('.stripe-button').attr('data-amount', total)
  alert total
Run Code Online (Sandbox Code Playgroud)

javascript jquery coffeescript stripe-payments

9
推荐指数
1
解决办法
5467
查看次数

Stripe Checkout泄漏内存吗?

我看到的问题是,当您使用规范的"自定义"指南将Stripe Checkout加载到页面中,对其进行配置,然后打开和关闭它几次,浏览器内存使用量会不断跳跃.有时,sorta会稍微释放,但残留总是会增长.在一个长期存在的页面/ SPA上,最终会有东西爬行.

  1. 使用--enable-precise-memory-info标记启动Google Chrome (无论是否带有此标记,都会出现问题)
  2. 复制其网站上的"自定义"示例:https://stripe.com/docs/checkout#integration-custom(或使用您自己的设置,结果相同).
  3. 点击"购买"按钮(或触发你的按钮stripeInstance.open(cfg)),摆弄弹出窗口,关闭.
  4. 重复步骤3,逐渐观察记忆

您可以使用memory-stats.js或仅在(Chrome)控制台中运行来观看内存:

performance.memory.usedJSHeapSize
Run Code Online (Sandbox Code Playgroud)

我确信这必须是"我"而不是条纹.他们不会泄漏如此糟糕的事件openclose事件吗?


编辑:这是一个JS小提琴,它可以复制他们的演示代码:https://jsfiddle.net/p1Lfuewt/

还有一个5秒间隔的内存屏幕截图,基本上只需点击"购买"即可打开和关闭它们的小部件(不知道那个承诺错误是什么,就是这些):

内存泄漏

javascript memory-leaks google-chrome stripe-payments

9
推荐指数
1
解决办法
217
查看次数

一个带多个 webhook 的条带帐户用于不同的服务

我已经将 Stripe 支付集成到我的一个网站中,并且一切正常(我正在为这个网站使用一个独特的 webhook)。

我刚刚通过我的另一个网站创建了一个完全不同的服务,并且正在将 Stripe 集成到该网站上。

但是我有一个问题,据我所知,我必须对我的两个服务使用相同的 webhook。这行不通!!我真的需要为每个服务使用单独的网络钩子……这可能吗?

PS:我在 Stripe 的文档中读到每个事件都将发送到列表中的每个 webhook ( https://dashboard.stripe.com/account/webhooks )。

请有人照亮!

php webhooks stripe-payments

8
推荐指数
1
解决办法
4575
查看次数

带有 Jest 的模拟条纹

我想在 Jest 中模拟节点 Stripe SDK,因为我不想从 Stripe 运行模拟 API 服务器,但我不知道如何去做。我正在创建一个__mocks__目录并添加,stripe.js但我无法导出任何可用的内容。

我通常TypeError: Cannot read property 'create' of undefined在调用strypegw.charges.create(). 我正在使用 ES6 模块语法,所以我import stripe from 'stripe'.

node.js stripe-payments jestjs

8
推荐指数
2
解决办法
5214
查看次数

如何在 Ionic 4 中集成 Stripe 支付

我是离子框架的新手,并试图在我的应用程序中集成条纹。我做了一些研究,发现只有这个https://ionicframework.com/docs/native/stripe。它解释得不够好。我如何在 .html 文件上实现这个概念,比如为用户提供一个按钮来触发付款?

我也试过这个https://fireship.io/lessons/stripe-elements-angular/但一路上迷路了。

checkout.page.ts

import { Component, OnInit, Input, HostListener } from '@angular/core';
// import { Stripe } from '@ionic-native/stripe/ngx';
import { AuthService } from '../services/auth.service';
import { FirebaseService } from '../services/firebase.service';
import { AngularFireFunctions } from '@angular/fire/functions';
import { Router } from '@angular/router';

import { Observable, of } from 'rxjs';

declare var Stripe;

@Component({
  selector: 'app-rentals',
  templateUrl: './rentals.page.html',
  styleUrls: ['./rentals.page.scss'],
})
export class RentalsPage implements OnInit {

  user$: Observable<User>;

    constructor(
        private router: Router,
      // …
Run Code Online (Sandbox Code Playgroud)

stripe-payments ionic4 angular7

8
推荐指数
0
解决办法
3156
查看次数

如何获取 PaymentIntent next_action.type = redirect_to_url 而不是 use_stripe_sdk 进行订阅

我正在使用 Stripe 实现 Subscription*(已准备好 SCA)。我尝试处理https://stripe.com/docs/billing/subscriptions/payment#handling-action-required。在 Stripe 端创建订阅后,我得到了上面文档中的答案:

{
  "id": "sub_XXXXXXXXXXXXXXXXXXX",
  "object": "subscription",
  "status": "incomplete",
  ...
  "latest_invoice": {
    ...
    "payment_intent": {
      "status": "requires_action",
      ...
      "next_action": {
        "type": "use_stripe_sdk",
        ...
      },
      ...
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

根据文档https://stripe.com/docs/api/payment_intents/object#payment_intent_object-next_action-type next_action.type可以有两个值redirect_to_urluse_stripe_sdk

所以我的问题是如何获取next_action.type = redirect_to_url(而不是use_stripe_sdk)以及如何强制填充条纹next_action.redirect_to_url(因为我想在我的 UI 中自己处理它)?

* SO 上已经有一个类似的问题:https : //stackoverflow.com/questions/56490033/how-to-handle-use-stripe-sdk-through-php 但我的情况是创建我没有的订阅控制 PaymentIntent

stripe-payments

8
推荐指数
1
解决办法
3131
查看次数

如何付款 意图在 Stripe 中向关联账户收费

我想创建一个 Stripe PaymentIntent,直接向关联账户收费

这是我写的

stripe.paymentIntents.create(
  {
    amount: 2000,
    currency: 'gbp',
    payment_method: 'pm_xxxx',
  }, {
    stripe_account: 'acct_1F2xxxxxxxxxx'
  },
  function(err, paymentIntent) {
    // asynchronously called
    // do something here
  }
);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么??

以下代码(没有连接的帐户)工作正常

stripe.paymentIntents.create(
  {
    amount: 2000,
    currency: 'gbp',
    payment_method: 'pm_xxxx',
  },
  function(err, paymentIntent) {
    // asynchronously called
    // do something here
  }
);
Run Code Online (Sandbox Code Playgroud)

我怀疑这是罪魁祸首,因为控制台错误说明了 PaymentMethod ....

编辑:代码是正确的,我发现问题出在 Stripe 上,因为它们需要某种进一步的身份验证。来自条纹文档

如果您选择直接收费,则需要确保已连接的帐户已启用您打算使用的付款方式。直接收费需要在连接的帐户上创建 PaymentMethods....

如果您从服务器创建 PaymentMethods,您可以使用 Stripe-Account 标头和我们支持的任何库来进行身份验证。

我会努力,看看怎么做

node.js stripe-payments

8
推荐指数
1
解决办法
3651
查看次数

出口交易需要客户姓名和地址 - 条纹错误

我正在使用 Stripe SDK 创建客户并使用 API 向客户收费,但出现“致命错误:未捕获(状态 400)(请求 req_ZyqUtykjUcOqrU)”的错误。根据印度法规,出口交易需要客户姓名和地址。更多此处的信息:https : //stripe.com/docs/india-exports 在第 38 行的 /opt/lampp/htdocs/stripe/lib/Exception/ApiErrorException.php 中抛出“

我的代码如下:

\Stripe\Stripe::setApiKey(STRIPE_API_KEY); 


$customer = \Stripe\Customer::create(array( 
        'name' => 'test',
        'description' => 'test description',        
        'email' => $email, 
        'source'  => $token 
));
$orderID = strtoupper(str_replace('.','',uniqid('', true))); 

$charge = \Stripe\Charge::create(array( 
        'customer' => $customer->id, 
        //'source' => 'rtest',
        'amount'   => $itemPrice, 
        'currency' => $currency, 
        'description' => $itemName, 
        'metadata' => array( 
            'order_id' => $orderID 
        ) 
    )); 
Run Code Online (Sandbox Code Playgroud)

php stripe-payments

8
推荐指数
2
解决办法
1万
查看次数

如何为条带会话结帐设置超时?

客户付款是否有超时,可以更改吗?

让我解释一下我的情况:

我必须在 PHP 预订平台上添加付款。

为确保一个时段不会被多次预约,当用户点击预约按钮时,平台会阻止预约20分钟。如果在此时间之后他还没有完成他的信息填写,他必须重新开始,或者如果他没有完成,则保留被释放。

我应该能够确保付款最长为 5 分钟。这样,我在预订开始后最多 15 分钟后开始付款。

这是我发现不修改整个代码的最简单方法。不幸的是,我在 API 中找不到这个选项。

否则,如果我在付款过程之前永久阻止预订,如果用户没有通过关闭浏览器完成交易,我将无法取消阻止它。

stripe-payments

8
推荐指数
1
解决办法
2696
查看次数

Laravel:无法声明类 App\Models\Customer,因为该名称已被使用

我有点困惑。我在我的用户(实际上是“客户”)模型上有一个简单的方法来返回用户的订阅续订日期:

public function subscriptionRenewalDate() : string
{
    $subscription = $this->subscriptions()->active()->first()->asStripeSubscription();

    return Carbon::createFromTimeStamp($subscription->current_period_end)->format('F jS, Y');
}
Run Code Online (Sandbox Code Playgroud)

我从刀片模板 ( {{ auth()->user()->subscriptionRenewalDate() }})对经过身份验证的用户调用此方法,它在本地工作正常,但是一旦我将其上传到远程登台服务器,它就会失败并显示错误:

无法声明类 App\Models\Customer,因为该名称已被使用

它指向 Customer 模型中的这一行:

class Customer extends Authenticatable
{
Run Code Online (Sandbox Code Playgroud)

奇怪的是,它不仅仅是远程登台服务器,它也是 Travis CI 失败的地方(运行 PHPUnit 测试时——这些相同的测试在本地工作正常)。

显然,这似乎是某种缓存或配置问题,但我无法理解是什么导致了此错误。

它与数据库无关,因为测试使用RefreshDatabase. 如果我删除 ENV 变量 ( CASHIER_MODEL: App\Models\Customer),它会因预期的“找不到模型用户”错误而失败,因此它正确获取了 ENV 变量。我尝试清除我的 Laravel 缓存 ( php artisan optimize:clear) 和composer dump-autoload. 这很令人困惑。

我所知道的是该错误是由asStripeSubscription(). 如果我从方法中删除它,刀片模板加载正常(一切正常)。

需要明确的是,我可以成功(这是本地、远程和 Travis CI):

  • 在 Laravel 中注册
  • 登录 Laravel
  • 重置我的密码
  • 更新我的个人资料
  • 输入付款信息以订阅 Stripe …

php laravel stripe-payments laravel-cashier

8
推荐指数
1
解决办法
1058
查看次数