How to find PLATFORM_SECRET_KEY in Stripe - php

How can i get PLATFORM_SECRET_KEY in my test stripe account
i am payment using stripe connect
\Stripe\Stripe::setApiKey(PLATFORM_SECRET_KEY);
$tr = \Stripe\Payout::create(array(
"amount" => 24784,
"currency" => "usd",
"source_type" => "bank_account"
));

This represents the API key of your own account so it can be found in your dashboard: https://dashboard.stripe.com/account/apikeys
You would be acting as the platform where you make API requests on behalf of your connected accounts which is why you would use your own API key. You also need to pass the connected account id in the Stripe-Account header as documented here. The code should look like this:
\Stripe\Stripe::setApiKey(PLATFORM_SECRET_KEY);
$payout = \Stripe\Payout::create(
array(
"amount" => 24784,
"currency" => "usd",
"source_type" => "bank_account"
),
array(
"stripe_account" => "acct_XXXXX"
)
));

Related

Stripe Charge after service complete

I am creating project using angular and larval. In my project i am integrating stripe for payment.My requirements are:
User fill their card details but not charged.User is charged after technician completes their service.I don't know how this flow will work.I already setup stripe in my project:
$charge = Stripe\Charge::create ([
"amount" => 10000,
"currency" => "gbp",
"source" => $token,
"description" => "payment",
"receipt_email"=>$email
]);
$charge = Stripe\Charge::create ([
"amount" => 10000,
"currency" => "gbp",
"source" => $token,
"description" => "payment",
"receipt_email"=>$email,
**"capture" => false**
]);
Notice the capture => false option here. This is what you need.
You will have to store the charge id some which you will find in your $charge variable.
When you want to charge actually charge do this,
$charge = \Stripe\Charge::retrieve($stripe_charge_id);
$charge->capture();
$stripe_charge_id will be the charge id that you stored earlier.
Also keep in mind that the uncaptured charge expires in 7 days.
you should check the documentation https://stripe.com/docs/api/charges/capture

stripe create payout getting error "Sorry, you don't have any external accounts in that currency (usd)"

I am working on create payout, while run the code i am getting error
Sorry, you don't have any external accounts in that currency (usd)
first i am creating the customer, and then i am creating the bank account, and after then i am doing the payout, can anyone please help me how can i resolve this issue, here is my code
<?php
require_once('init.php');
\Stripe\Stripe::setApiKey("*************");
$customer = \Stripe\Customer::create(array(
"description" => "Customer for payout"
));
$customer_id = $customer->id;
$customer = \Stripe\Customer::retrieve($customer_id);
$bank_data = \Stripe\Token::create(array(
"bank_account" => array(
"country" => "US",
"currency" => "usd",
"account_holder_name" => "Charlotte Thomas",
"account_holder_type" => "individual",
"routing_number" => "110000000",
"account_number" => "000123456789"
)
));
$bank_token = $bank_data->id;
$bank_account = $customer->sources->create(array("source" => $bank_token));
$payout_data = \Stripe\Payout::create(array(
"amount" => 100,
"currency" => "usd",
));
echo "<pre>";
print_r($payout_data);
die;
?>
You're adding a bank account as a payment source to a customer object, i.e. for ACH payments.
For payouts, if this is your own Stripe account, you need to enter your bank account details in your dashboard at https://dashboard.stripe.com/account/payouts. You'll also need to set your payout schedule to "Manual" if you want to be able to create payouts via the API.
Also note that when creating charges, funds are not immediately available, so you will not be able to create a payout immediately after creating a charge. You can read all about payouts in Stripe's documentation at https://stripe.com/docs/payouts.

Get charge ID after Stripe payment and issue refund in PHP

I'm using Stripe to process my payments in PHP with the API found here https://github.com/myg0v/Simple-Bootstrap-Stripe-Payment-Form
I'm using the following code to issue payment:
$charge = Stripe_Charge::create(array("amount" => $amount,
"currency" => "$currency",
"card" => $stripetoken,
"description" => $email));
Will the following code retrive the charge_id and refund the user?
$charge_id = $charge->stripe_charge_id;
$refund = Stripe_Refund::create(array(
"charge" => "$charge_id"
));
This syntax is for old versions of Stripe's PHP library (1.x). You should make sure that you use the latest version (currently 4.4.0).
Stripe's API reference includes samples for every request and language. You can check the sample requests for:
creating a charge
creating a refund
Basically:
$charge = \Stripe\Charge::create(array(
"amount" => $amount,
"currency" => $currency,
"source" = $token,
"description" => "Charge for $email"
));
$refund = \Stripe\Refund::create(array(
"charge" => $charge->id
));

How to connect to managed account in stripe and make a payment?

First of all, I'm Sorry for my english.
I want to create a charge in Stripe from account A to account B. The account A is a mananaged account. The account B can be any of multiple accounts. But when I try to create the charge with the destination parameter the API resturn an error. Says:
"error": {
"type": "invalid_request_error",
"message": "The destination param must be a connected account.",
"param": "destination"
}
How I could connect the destination account (Account B) to get this??. I'm using the php api stripe to this. Next this is the example code that I using. Thanks in advance:
\Stripe\Stripe::setApiKey('sk_test_ACCOUNT_A_KEY');
// Charge the order:
$charge = \Stripe\Charge::create(array(
// 'source' => $token,
'customer' => 'cus_ID_CUSTOMER_TO_GET_PAYMENT',
"amount" => 100000,
"currency" => "usd",
"description" => "from account A to account B",
'destination' => 'acct_ID_DESTINATION_ACCOUNT'
)
);
echo "<pre>";
print_r($charge);
echo "</pre>";
If you have gone through stripe documentations you clearly will have seen there are three types of charges in Stripe connect.
Direct Charges
Destination Charges
Seperate Charges
In your case, you will have to use destination charges. You could use
$charge = \Stripe\Charge::create(array(
"amount" => 1000,
"currency" => "usd",
"source" => "cus_ID_CUSTOMER_TO_GET_PAYMENT",
"destination" => array(
"account" => "{CONNECTED_STRIPE_ACCOUNT_ID}",
),
));
to charge a customer on behalf of your connected account.

How to send extra parameter in stripe charge.

I am integrating stripe payment gateway. i have integrated it successfully. but the problem is that i want to send exptra parameter for stripe one time and get that in response.
Now i using
Stripe_Charge::create(array(
"amount" => number_format($amount,2,".","")*100,
"currency" => AccountCurrency,
"card" => $_POST['stripeToken'],
"description" => "Desc: " . $custom
));
I want to send extra partameter like order_id and want that from response as stripe give customer id for recurring charge.
Stripe_Charge::create(array(
"amount" => number_format($amount,2,".","")*100,
"currency" => AccountCurrency,
"card" => $_POST['stripeToken'],
"description" => "Desc: " . $custom,
"Order_id => $order // Is there any method to send paramerte like this.
));
Thank you.
You can use the metadata attribute. See below -
Stripe_Charge::create(array(
"amount" => number_format($amount, 2, ".", "")*100,
"currency" => AccountCurrency,
"card" => $_POST['stripeToken'],
"description" => "Desc: " . $custom,
"metadata" => array("order_id" => $order)
));
Check the documentation here
// Get Logged Customer Id using Logged User's Email
Dictionary<string, string> Extra = new Dictionary<string, string>();
Extra.Add("email", ByEmail);
StripeCustomer customer = customerService.List(new StripeCustomerListOptions() { Limit = 1, ExtraParams = Extra }).SingleOrDefault();

Categories