React native 如何在react native中将测试条带支付更改为实时条带支付
我正在使用Stripe为我的应用程序付款。我能够配置接受测试付款,这些付款将显示在我的Stripe仪表板上。我现在已经更改了代码中的条带测试密钥,并将它们与活动密钥交换。但是,当我付款时,付款仍然显示为测试模式付款。它甚至显示了一个测试模式的信用卡号,而不是用于实时支付的信用卡号。 我如何获得条纹付款以显示实际的实时付款 这是我的后端代码 我正在使用firebase函数React native 如何在react native中将测试条带支付更改为实时条带支付,react-native,firebase-realtime-database,stripe-payments,React Native,Firebase Realtime Database,Stripe Payments,我正在使用Stripe为我的应用程序付款。我能够配置接受测试付款,这些付款将显示在我的Stripe仪表板上。我现在已经更改了代码中的条带测试密钥,并将它们与活动密钥交换。但是,当我付款时,付款仍然显示为测试模式付款。它甚至显示了一个测试模式的信用卡号,而不是用于实时支付的信用卡号。 我如何获得条纹付款以显示实际的实时付款 这是我的后端代码 我正在使用firebase函数 const stripe = require('stripe')('sk_live XXXXX') exports.compl
const stripe = require('stripe')('sk_live XXXXX')
exports.completePaymentWithStripe = functions.https.onRequest((request,response)=>{
stripe.charges.create({
amount: request.body.amount,
currency: request.body.currency,
source: request.body.token.tokenId
})
.then(charge => {
response.send(charge);
return null
})
.catch(error => {
console.log(error)
})
}
)
这是我的支付函数,它调用stripeapi
stripe.setOptions({
publishableKey: "pk_live_XXX "
})
const onPaymentPress = async () => {
setLoading(true);
const { user = {}} = route.params;
const { firstName = "", lastName = "" } = user
const expMonth = Number(expDate.split("/")[0])
const expYear = Number(expDate.split("/")[1])
const params = {
number: ccNumber,
expMonth: expMonth,
expYear: expYear,
cvc: cvv,
currency: 'usd',
name: '',
addressLine1: '',
addressLine2: '',
addressCity: '',
addressState: '',
addressCountry: '',
addressZip: '',
};
const token = await stripe.createTokenWithCard(params).catch(err => {
setLoading(false);
alert(err);
})
if (!token) return;
axios({
method: 'POST',
url: "https://us-central1-lvc2-73300.cloudfunctions.net/completePaymentWithStripe",
data: {
amount: 100,
currency: 'usd',
name: firstName + " " + lastName,
token: token
}
}).then(response => {
alert("Payment Successful");
setLoading(false);
updateFirebase(response.data);
}).catch(err => {
setLoading(false);
console.log("err ", err);
alert(JSON.stringify(err.message));
})
}
updateFirebase = (stripeResponse) => {
const user = firebase.auth().currentUser;
const uid = user.uid
const usersRef = firebase.firestore().collection('users')
usersRef
.doc(uid)
.set({ "subscribed": true }, { merge: true })
.then(async () => {
console.log("Success");
const { id, amount, paid, receipt_url } = stripeResponse;
const data = {
userId: uid,
stripe_payment_id: id,
amount, paid, receipt_url,
created: firebase.firestore.Timestamp.fromDate(new Date())
};
您可能需要进行更多调试,并查看a)是否实际部署了带有live键的Firebase函数,以及b)您的ReactNative应用程序是否确实在使用live模式键。如果您切换到实时模式键,所有请求都应该在条带仪表板上的实时模式下发生,因此请尝试分解问题并逐步查看它(即,您是否在条带仪表板上的实时模式下收到一个请求?您可能需要进行更多调试并查看一个)如果您的Firebase功能和live键已实际部署,以及b)您的ReactNative应用程序是否确实在使用live模式键。如果您切换到实时模式键,所有请求都应该在您的条带仪表板上的实时模式下发生,因此请尝试分解问题并逐步查看它(即,您是否在条带仪表板上的实时模式下收到单个请求?