- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
您好,我一直在尝试使用 Omnipay paypal 和 Laravel 4 将 paypal 与我网站的购物车集成。我主要使用 THIS到目前为止的教程。
我仍处于初始阶段,但遇到了障碍。当我尝试结帐时,我收到一条错误消息,提示“需要金额参数”。
我有点菜鸟,所以我可能会做一些愚蠢的事情,但如果我对金额进行硬编码(即:“价格”=> 25.00,),那么它就会正常工作。描述和货币也都从数据库中提取并发送到 Paypal 页面。我在这里发现的问题似乎没有人将数据动态地拉到他们的 Controller ,所以也许我做错了什么?
这是我的 Controller 的相关部分:
<?php
use Omnipay\Omnipay;
class PaymentController extends Controller {
public function postPayment() {
$params = array(
'cancelUrl' => 'http://localhost/cancel_order',
'returnUrl' => 'http://localhost/payment_success',
'name' => Input::get('name'),
'description' => Input::get('description'),
'price' => Input::get('price'),
'currency' => Input::get('currency') );
Session::put('params', $params);
Session::save();
$gateway = Omnipay::create('PayPal_Express');
$gateway->setUsername('my username');
$gateway->setPassword('my pass');
$gateway->setSignature('my signature');
$gateway->setTestMode(true);
$response = $gateway->purchase($params)->send();
这是我的购物车结帐按钮:
{{ Form::open([ 'url' => 'pay_via_paypal', 'method' => 'post' ]) }}
{{Form::hidden('product',Product::find($productID)->name)}}
{{Form::hidden('description',Product::find($productID)->description)}}
{{Form::hidden('amount',Product::find($productID)->price)}}
{{Form::hidden('currency',Product::find($productID)->currency)}}
{{Form::submit('CHECKOUT')}}
{{Form::close()}}
表单可能看起来有点困惑,但在我提交之前,表单上的所有值都显示正常。
感谢您的帮助。
最佳答案
如果你仔细查看教程,你会看到有一个 index()
函数负责生成表单。以及处理表单提交的 postPayment()
函数。
在 index() 函数中(在教程中)
在 hello.blade.php
中有一个参数叫做 price
<input type="hidden" value="{{ $price }}" name="price" />
你的情况
{{ Form::hidden('amount',Product::find($productID)->price) }}
应该替换为
{{ Form::hidden('price',Product::find($productID)->price) }}
然后当您提交表单时,它将路由到 postPayment()
函数,在此处,所以 Route::post('pay_via_paypal', 'PaymentController@postPayment');
这个路由应该在你的 route
文件中
在 postPayment()
函数中,
$params = array(
'cancelUrl' => 'http://localhost/cancel_order',
'returnUrl' => 'http://localhost/payment_success',
'name' => Input::get('name'),
'description' => Input::get('description'),
// you dont need this price parameter ('price' => Input::get('price'),)
'amount' => Input::get('price'), // add amount parameter which is required in paypal.
'currency' => Input::get('currency') );
仅供引用,
you are repeatedly use
Product::find($productID)
which is not a good practice, If you get that product into a Object variable then, You can use that object without repeatingProduct::find($productID)
.
为此,您可以将对象
从 Controller 传递给 Blade View ,
喜欢,
$product = Product::find($productId);
return View::make('hello')->with(Array("product" => $product));
在 Blade View 中,
....
{{ Form::hidden('product',$product->name) }}
{{ Form::hidden('description',$product->description) }}
....
..等等
关于php - 金额参数是必需的 - Omnipay paypal with laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28259318/
我正在使用 Omnipay,我收到了这条消息: Fatal error: Uncaught Error: Class 'Omnipay\Omnipay' not found 目录列表: Compose
我以前用过 ci-merchant,但从各方面来看,它的“V2”现在是 omnipay。我使用 codeigniter,我什至都在努力让示例正常工作。 我已经安装了 omnipay 没问题,在我的 C
基于这个答案:Omnipay how to add new gateway 我尝试为 omnipay 添加一个新网关。 我的文件夹结构: lib/omnipay/newgw/ lib/omnipay/
我有一个用于 Paypal 重定向的函数,因为我在参数中传递了一些值.. 它只通过Description字段不显示要支付的金额,其余的我的订单摘要.. 这是我的功能 public function p
我正在尝试使用 Omnipay处理 Pin Payment 交易并具有以下代码(与 example on the Pin website 几乎完全相同,并且包含我的 secret API key 而不
我用paypal express完成支付后,我的数据库更新失败了,我该怎么办? 代码如下: $transaction = $this->initPayPalExpress()->complet
在我的返回网址上购买后,我收到了这条成功消息: Array ( [TOKEN] => EC-55E14916SE342401J [TIMESTAMP] => 2016-02-12T16:59:00Z
我正在尝试使用 OmniPay for PayPal Express 设置运送信息(姓名、地址、电子邮件等)。我尝试在 purchase($options) 对象的选项数组中添加运输信息: $opti
我在授权的付款方式中使用 omnipay 套餐。我在同一台服务器上有两个站点,一个是运行 ssl 的实时站点,另一个仅用于测试目的,不运行 ssl。 现在,我在我们的测试网站上付款没有问题,它在我们的
我正在使用 Omnipay 2.1 和 CodeIgniter 2.1.4 接收 Paypal 付款。 我使用这条线完成购买并检查付款是否已发送: $bool = $gateway->complete
我正在尝试将 Omnipay API 与 Stripe 一起使用,但我无法传入额外的参数,例如“名称”、“元数据”或“Zip”。 // The token is grabbed from str
我正在使用这个数据包: https://github.com/barryvdh/laravel-omnipay 在我的 Controller 中我添加了: $params = [
我的支付网关中的 Omnipay 运行良好,但是当系统重定向到 PayPal 时,我在重定向到 PayPal 之前在屏幕上看到以下内容: Redirecting to https://www.sand
我想将 PayPal Express Checkout 与 Omnipay 集成,但文档完全未完成。如何运行“setExpressCheckout”、“doExpressCheckout”和“getE
您好,我一直在尝试使用 Omnipay paypal 和 Laravel 4 将 paypal 与我网站的购物车集成。我主要使用 THIS到目前为止的教程。 我仍处于初始阶段,但遇到了障碍。当我尝试结
我在自定义应用程序中使用 Omnipay。它工作正常,但我们需要加税 (VAT)。 Paypal 的税收 API 参数似乎没有效果。 我搜索了 Omnipay Paypal 代码,但没有看到任何涉及税
我正在为我的网络应用程序寻找支付解决方案。我看到有像 stripe(用于信用卡)或 PayPal 插件这样的 API 可以处理某些支付方式。 然后我看到有可以处理各种支付方式的库,比如 Payum (
omnipay 没有完整的文档!我正在尝试在授权后进行捕获,但我似乎做不对。 load->helper('url'); } public function authorize()
我正在使用 Omnipay-stripe我正在尝试 Create a customer使用以下代码: $gateway = Omnipay::create('Stripe');
我正在使用名为 Attendize 的开源票务系统. 他们已经有了支付提供商 Stripe融合的。现在我正在尝试与支付提供商合作 Mollie . 问题是我一直被这个错误绊倒: 我的代码是这样的: $
我是一名优秀的程序员,十分优秀!