条纹订阅JS问题

时间:2019-10-18 16:18:31

标签: javascript node.js reactjs stripe-payments

我使用以下代码创建一个带区客户并为该客户创建订阅

  stripe.subscriptions.create({
                customer: customer_id,
                items: [
                    {
                        plan: plan_id
                    },
                ],
                trial_period_days: 7,
                expand: ['latest_invoice.payment_intent'],
            }, function (err, subscription) {

 stripe.customers.create({
            email: email,
            source: token,
            metadata: {
                userid: userId
            }
        }, function (err, customer) {

我希望用户订阅以订阅1周的免费试用版月租计划(7天后付款)

我遇到了以下问题

  1. 条带不验证产品上的信用卡号。您可以输入任何信用卡号,付款就会通过

有人可以帮忙吗?

这是客户代码

submit(event) {
    event.preventDefault();

    if ( this.props.planid) {
        setTimeout(() => {
            this.setState({loading: true});
        }, 0);
        var planId = this.props.planid;
        this.props.stripe.createToken({name: "Name"}).then( token => {
            axios.post("/charge/process/" + planId, {
                token: token.id
            }).then(response => {
                if (response.data.status === "ok") {
                    this.setState({complete: true, loading: false})
                } else if (response.data.error) {
                    this.setState({error: response.data.error, loading: false});
                }
            }).catch(error => {
                this.setState({error: "There was an error.", loading: false});
            });
        })
    } else {
        this.setState({error: "Invalid plan id", loading: false});
    }
}


render() {
    if (this.state.loading) return (<Spinner />)
    if (this.state.complete) return (<p align="center">Thanks for purchasing! You can now access the <a
        href="/books">book summaries</a>.</p>);

    var error = "";
    if (this.state.error) {
        error = (<p>{this.state.error}</p>);
    }

    return (
        <div className="CheckoutForm" style={{width: "400px", margin: "0 auto", "textAlign": "center"}}>
            {error}
            <fieldset>
                <legend className="card-only">Pay with card</legend>
                <div className="container">
                    <div id="example4-card" className="StripeElement StripeElement--empty">
                        <div style={{width: "300px", margin: "0 auto"}}>
                            <CardElement/>
                            <br/>
                            <br/>
                            <button onClick={this.submit.bind(this)} className="btn btn-primary purchasebtn">Purchase</button>
                        </div>
                    </div>
                </div>
            </fieldset>

        </div>
    );
}

0 个答案:

没有答案