很抱歉,这有点笼统,只是想确保我使用最佳做法,而无法找出那是什么。
我正在清理对Stripe的使用,发现我们代表托管/连接帐户实现API请求的唯一方法是对API端点使用直接的HTTP请求,以便我们可以传入帐户的秘密密钥,进行https://${ACCOUNT_SECRET_KEY}:@${STRIPE_BASE_URL}/<endpoint>
。
虽然可行,但我还是想清理一下以使用API。
不过,我想知道是否可以使用为一般平台使用而设置的相同Stripe实例来执行此操作?即我有一个带有const Stripe = require('stripe')(STRIPE_SECRET_KEY)
的Stripe模块,并使用它来发出创建转账,添加客户卡等的API请求。我一直在尝试梳理Stripe的文档,以查看是否存在传递密钥的方法我要提出请求的帐户,但我没有看到它。
我最好的选择是每次我想进行API调用时都使用连接帐户的私钥创建此Stripe对象的新实例吗?即在函数中设置新变量,而不是使用文件级Stripe实例?
编辑以添加一些我的意思的代码示例。我很确定这是一个一个选项,但是似乎这可能不是 best 选项,因为每个单独的函数都在创建它自己的Stripe全新实例,在优化方面,这看起来可能会变得昂贵。我只是没有真正看到替代方法。
const Stripe = require('Stripe');
const STRIPE_SECRET_KEY = <redacted>,
STRIPE_API_VERSION = <api date>,
stripe = Stripe(STRIPE_SECRET_KEY);
if( STRIPE_API_VERSION )
stripe.setApiVersion(STRIPE_API_VERSION);
// Example of API request from primary account
exports.createCustomerWithCardToken = (token, email) => {
const params = {
source: token,
email: email
};
return stripe.customers.create(params);
}
// Example of API request to managed account
exports.getAccountBalance = accountId => {
const ACCOUNT_SECRET = <get account secret from accountId>;
const managedStripe = Stripe(ACCOUNT_SECRET);
if( STRIPE_API_VERSION )
managedStripe.setApiVersion( STRIPE_API_VERSION ):
return managedStripe.balance.retrieve();
}
答案 0 :(得分:1)
您永远不需要使用连接的帐户的API密钥。您可以简单地将关联帐户的ID(import cv2
import numpy as np
particlefilterparams = cv2.SimpleBlobDetector_Params()
particlefilterparams.filterByArea = False
particlefilterparams.minArea=7
particlefilterparams.maxArea =99999999
particlefilterparams.filterByCircularity = False
particlefilterparams.minCircularity = 0
particlefilterparams.maxCircularity = 255
particlefilterparams.filterByConvexity = False
particlefilterparams.minConvexity = 0
particlefilterparams.maxConvexity = 1
particlefilterparams.filterByInertia = False
particlefilterparams.minInertiaRatio = 0
particlefilterparams.maxInertiaRatio = 1
particlefilterparams.minThreshold =1
particlefilterparams.maxThreshold = 255
shotdetector = cv2.SimpleBlobDetector_create(particlefilterparams)
counter = 0
diff = cv2.imread('Missed.png', 0)
ret,bimg = cv2.threshold(diff, 1, 255, cv2.THRESH_BINARY)
oimg=cv2.bitwise_not(bimg)
shots = shotdetector.detect(oimg)
oimg = cv2.bitwise_not(oimg)
im_with_keypoints = cv2.drawKeypoints(oimg, shots, np.array([]), (0,0,255), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
# Show keypoints
cv2.imshow("Keypoints", im_with_keypoints)
cv2.waitKey(0)
cv2.destroyAllWindows()
传递为您使用平台帐户的API密钥发出的API请求的标头,这将导致代表该关联帐户处理请求。所有Stripe的官方库都支持指定此标头。
https://stripe.com/docs/connect/authentication#stripe-account-header
要使用Stripe-Node获取关联帐户的余额,代码应类似于:
acct_xxx
https://github.com/stripe/stripe-node/wiki/Passing-Options#options
同一可选参数也可用于对连接的帐户执行任何其他API请求(创建客户,更新客户卡)。