Yii2:如何简单地在控制器中包含和使用 Stripe php 库?
Yii2: How to simply include and use in controllers the Stripe php lib?
到目前为止,我使用的是将库放在供应商文件夹下的作曲家。
它是这样的:vendor\stripe\stripe-php\lib
从那里我有点迷失了我应该如何声明命名空间(我猜在组件下面的 config/web.php 中)。 Stripe.php class文件中声明的命名空间是Stripe。
在控制器中,我想像 Stripe 网站上的示例中那样使用它。
```
// Create the charge on Stripe's servers - this will charge the user's card
try {
$charge = \StripeLib\Charge::create(array(
"amount" => 1000, // amount in cents, again
"currency" => "eur",
"source" => $token,
"description" => "payinguser@example.com")
);
} catch(\StripeLib\Error\Card $e) {
// The card has been declined
echo "The card has been declined. Please, try again.";
}
```
好的,事情就是这样。使用 composer 包含 lib 后,您可以在 vendor/stripe/stripe-php/lib/stripe 下找到条带 class。所以,在我的控制器中我做了这个
use app\stripe\stripe-php\lib\Stripe;
但由于连字符的原因,它不起作用,所以我不得不将文件夹 stripe-php 重命名为 stripephp(我知道这根本不好),因为它不会我猜不会用作曲家更新。
最后,我在控制器的开头有这个
use app\stripe\stripephp\lib\Stripe;
然后在我的行动中我使用这样的东西
\Stripe\Stripe::setApiKey(Yii::$app->stripe->privateKey);
//we got the token, we must then charge the customer
// Get the credit card details submitted by the form
$token = $_POST['stripeToken'];
// Create the charge on Stripe's servers - this will charge the user's card
try {
$charge = \Stripe\Charge::create(array(
"amount" => 1000, // amount in cents, again
...
不要忘记将 private/public 密钥放入配置文件中。
如果您有更好的解决方案(更优雅),不客气。
我为此苦苦挣扎。我将 Stripe 库添加到我的作曲家文件中
"stripe/stripe-php" : "2.*"
创造了 /vendor/stripe/stripe-php
stripe 库仅使用 Stripe 作为命名空间。然后在我的控制器中我输入
use Stripe\Stripe;
use Stripe\Charge;
然后我就可以做
Stripe::setApiKey(Yii::$app->params['sk_test'])
和
try {
$charge = Charge::create(array(
"amount" => round(100*100,0), // amount in cents, again
"currency" => "usd",
"card" => $token,
"description" => 'description',
));
$paid = true;
} // end try
到目前为止一切顺利...
到目前为止,我使用的是将库放在供应商文件夹下的作曲家。 它是这样的:vendor\stripe\stripe-php\lib
从那里我有点迷失了我应该如何声明命名空间(我猜在组件下面的 config/web.php 中)。 Stripe.php class文件中声明的命名空间是Stripe。
在控制器中,我想像 Stripe 网站上的示例中那样使用它。
```
// Create the charge on Stripe's servers - this will charge the user's card
try {
$charge = \StripeLib\Charge::create(array(
"amount" => 1000, // amount in cents, again
"currency" => "eur",
"source" => $token,
"description" => "payinguser@example.com")
);
} catch(\StripeLib\Error\Card $e) {
// The card has been declined
echo "The card has been declined. Please, try again.";
}
```
好的,事情就是这样。使用 composer 包含 lib 后,您可以在 vendor/stripe/stripe-php/lib/stripe 下找到条带 class。所以,在我的控制器中我做了这个
use app\stripe\stripe-php\lib\Stripe;
但由于连字符的原因,它不起作用,所以我不得不将文件夹 stripe-php 重命名为 stripephp(我知道这根本不好),因为它不会我猜不会用作曲家更新。
最后,我在控制器的开头有这个
use app\stripe\stripephp\lib\Stripe;
然后在我的行动中我使用这样的东西
\Stripe\Stripe::setApiKey(Yii::$app->stripe->privateKey);
//we got the token, we must then charge the customer
// Get the credit card details submitted by the form
$token = $_POST['stripeToken'];
// Create the charge on Stripe's servers - this will charge the user's card
try {
$charge = \Stripe\Charge::create(array(
"amount" => 1000, // amount in cents, again
...
不要忘记将 private/public 密钥放入配置文件中。
如果您有更好的解决方案(更优雅),不客气。
我为此苦苦挣扎。我将 Stripe 库添加到我的作曲家文件中
"stripe/stripe-php" : "2.*"
创造了 /vendor/stripe/stripe-php
stripe 库仅使用 Stripe 作为命名空间。然后在我的控制器中我输入
use Stripe\Stripe;
use Stripe\Charge;
然后我就可以做
Stripe::setApiKey(Yii::$app->params['sk_test'])
和
try {
$charge = Charge::create(array(
"amount" => round(100*100,0), // amount in cents, again
"currency" => "usd",
"card" => $token,
"description" => 'description',
));
$paid = true;
} // end try
到目前为止一切顺利...