2015-03-09 10 views
14

Khi sử dụng sọc trong chế độ live tôi có được điều này lỗi PHP:sọc: Không đặt trước đó .. một đối tượng tương tự tồn tại trong chế độ kiểm tra, nhưng một chìa khóa chế độ sống được sử dụng để thực hiện yêu cầu này

No such token tok_fgfhn.. a similar object exists in test mode, but a live mode key was used to make this request

công trình Tất cả mọi thứ cũng ở chế độ kiểm tra Sọc, và tôi đã chuyển sang một khóa API trực tiếp.

tôi tạo ra một khách hàng mới như thế này:

$token = $_POST['stripeToken']; 
    $email = $_POST['email']; 

$customer = \Stripe\Customer::create(array(
     'email' => $email, 
     'card' => $token 
    )); 

    //charge for user ads 
    $charge = \Stripe\Charge::create(array(
     'customer' => $customer->id, 
     'amount' => $amount, 
     'currency' => 'eur' 
    )); 

Tôi đã chờ đợi nhiều giờ nhưng tôi vẫn nhận được lỗi này. Làm thế nào tôi có thể sửa chữa nó?

+0

Dường như tài khoản của bạn chưa được kích hoạt hoặc bạn không sử dụng sửa khóa bí mật. Bạn đã liên lạc với họ chưa? – RST

+2

Điều này là do bạn không thay đổi khóa API có thể xuất bản 'pk_live_XXX' và bạn vẫn đang sử dụng thử nghiệm' pk_test_YYY' – koopajah

+0

cảm ơn trả lời của bạn, nhưng tài khoản của tôi được kích hoạt và tôi đã thay đổi cả khóa bí mật và API có thể xuất bản – Julien

Trả lời

6

Có vẻ như bạn đang cố gắng tính phí một khách hàng tồn tại trên tài khoản thử nghiệm của bạn, không phải trên tài khoản thực của bạn. Đảm bảo bạn đang tạo khách hàng mới bằng các phím trực tiếp và sử dụng mã thông báo của họ để tạo khoản phí.

+0

câu hỏi của tôi là ngày từ một năm cho đến bây giờ, tôi quên đóng nó, có đó là một vấn đề ngu ngốc, tôi đã sử dụng phím kiểm tra – Julien

+0

Không phải lo lắng. Tôi gặp phải vấn đề này vài lần trong quá trình phát triển haha. Và thậm chí một thời gian dài sau, khi tôi nhân bản các máy chủ prod để thực hiện một số thử nghiệm với nhiều dữ liệu thực tế hơn là dữ liệu thử nghiệm tối thiểu mà tôi đã có sẵn. Tôi đã cố gắng tìm ra lý do tại sao không có công cụ sọc nào của tôi hoạt động khi tôi có khóa thích hợp ... đó là vì dữ liệu sản xuất có id khách hàng được tạo bằng khóa trực tiếp, vì vậy tôi không thể thực hiện bất kỳ thao tác nào trên nó bằng các phím kiểm tra của tôi. –

2

Xem javascript sử dụng khóa API công cộng thử nghiệm để truy xuất mã thông báo. Thay đổi nó thành khóa API công khai trực tiếp của bạn.

Nó phải là một cái gì đó như thế này

Stripe.setPublishableKey('pk_test_axEdfdasdfasfsadfsad'); 
1

Bạn sẽ có hai phím khác nhau trong tài khoản sọc của bạn. Vui lòng chắc chắn rằng bạn đã thay thế cả hai phím thử nghiệm với các phím trực tiếp:

sống chính sectret: sk_live_00000000000000000000000

live xuất bản chính: pk_live_00000000000000000000000

1- chìa khóa bí mật sẽ thay thế trong tất cả php của bạn tập lệnh đang tính phí

\Stripe\Stripe::setApiKey("sk_live_00000000000000000000"); 

2- Khóa xuất bản sẽ thay thế trong tệp .JS của bạn thông qua đó bạn đang vali hẹn hò với hình thức thanh toán của bạn cùng một tập tin này cũng tạo ra mã thông báo sau khi xác nhận thành công. Nó có thể gọi stripe.js hoặc có thể tên khác bạn cần để xác định vị trí tập tin này nó sẽ có xuất bản quan trọng mà bạn cần phải thay thế từ thử nghiệm để sống:

Stripe.setPublishableKey('pk_live_0000000000000'); //this would be publish key 

      function stripeResponseHandler(status, response) { //token function 
       if (response.error) { 
        // re-enable the submit button 
        $('.submit-button').removeAttr("disabled"); 
        // show hidden div 
        document.getElementById('a_x200').style.display = 'block'; 
        // show the errors on the form 
        $(".payment-errors").html(response.error.message); 
       } else { 
        var form$ = $("#payment-form"); 
        // token contains id, last4, and card type 
        var token = response['id']; 
        // insert the token into the form so it gets submitted to the server 
        form$.append("<input type='hidden' name='stripeToken' value='" + token + "' />"); 
        // and submit 
        form$.get(0).submit(); 
       } 
      } 
Các vấn đề liên quan