Stripe Этот клиент не имеет прикрепленного источника оплаты - PullRequest
0 голосов
/ 05 июля 2018

У меня проблема в моем WordPress, я использую полосу, и у меня появляется это сообщение об ошибке: «У этого клиента нет прикрепленного источника оплаты», но я не понимаю, почему. В среде разработки у меня не было проблем, и теперь в Prod у меня есть эта проблема. Для информации я использую карту 4242 4242 4242 4242 для тестирования.

Большое спасибо за вашу помощь

if(isset($_POST['action']) && $_POST['action'] == 'stripe' && wp_verify_nonce($_POST['stripe_nonce'], 'stripe-nonce')) {

    global $stripe_options, $post;


    // load the stripe libraries
    require_once(STRIPE_BASE_DIR . '/init.php');

    // retrieve the token generated by stripe.js
    $token = $_POST['stripeToken'];
    $amount = base64_decode($_POST['amount'])*100;
    $email = $_POST['email'];
    $plan_nickname = $_POST['plan_nickname'];
    $plan_id = $_POST['plan_id'];
    $nom = $_POST['name'];
    $prenom = $_POST['prenom'];
    $adresse = $_POST['address-line1'];
    $ville = $_POST['address-city'];
    $zip = $_POST['address-zip'];



    // check if we are using test mode
    if(isset($stripe_options['test_mode']) && $stripe_options['test_mode']) {
        $secret_key = $stripe_options['test_secret_key'];
    } else {
        $secret_key = $stripe_options['live_secret_key'];
    }

    // attempt to charge the customer's card
    try {

        \Stripe\Stripe::setApiKey($secret_key);

        $product = \Stripe\Product::create([
            'name' => $stripe_options['product_name'],
            'type' => 'service',
        ]);

        $plan = \Stripe\Plan::create([
            'product' => $stripe_options['product_key'],
            'nickname' => $plan_nickname,
            'interval' => 'month',
            'currency' => 'eur',
            'amount' => $amount,
          ]);

        $customer = \Stripe\Customer::create([
            'email' => $email,
            'source' => $token,
            'description' => $plan_nickname,
        ]);

        $subscription = \Stripe\Subscription::create([
            'customer' => $customer->id,
            'items' => [['plan' => $plan_id]],
        ]);

        // redirect on successful payment
        $redirect = add_query_arg('payment', 'paid', $_POST['redirect']);

    } catch (Exception $e) {
        // redirect on failed payment
        //$redirect = add_query_arg('payment', 'failed', $_POST['redirect_failed']);
        var_dump($e);

    }

    // redirect back to our previous page with the added query variable
    wp_redirect($redirect); exit;
}

}

1 Ответ

0 голосов
/ 13 июня 2019

Проверьте план на Stripe. Если у плана есть пробный период, вам необходимо создать подписку с пробным периодом. Я использую Laravel Cashier и Respa-Stripe-Checkout, и это сработало для меня:

$user->newSubscription('main', 'basic')
            ->trialDays(30)
            ->create($request->token);
...