- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一些代码可以为 Paypal 构建请求 URL,但在某些项目上它返回以下错误(在响应转换为数组后):
Array
(
[TIMESTAMP] => 2012-08-15T14:23:10Z
[CORRELATIONID] => XXXXXXXXXXXXXXXXX
[ACK] => Failure
[VERSION] => 87.0
[BUILD] => 3435050
[L_ERRORCODE0] => 10413
[L_SHORTMESSAGE0] => Transaction refused because of an invalid argument. See additional error messages for details.
[L_LONGMESSAGE0] => The totals of the cart item amounts do not match order amounts.
[L_SEVERITYCODE0] => Error
)
这是我通过 cURL 发送的 url:
https://api.sandbox.paypal.com/nvp?
METHOD=setExpressCheckout
&VERSION=87.0
&USER=test_user.mysite.co.uk
&PWD=1340704478&SIGNATURE=AxhCd62FkHm-KuS.WvqjUnQ.l8WyAuePJQjoYT0C5lGiwjpcVIJHURjI
&RETURNURL=http://www.mysite.co.uk/checkout/order/confirm
&CANCELURL=http://www.mysite.co.uk/checkout/order/error
&L_PAYMENTREQUEST_0_NAME0=Likit+Snaks+&L_PAYMENTREQUEST_0_NUMBER0=LIKIT-SNAKS
&L_PAYMENTREQUEST_0_DESC0=Flavour%3A+Apple+&+Cinnamon
&L_PAYMENTREQUEST_0_AMT0=2.08
&L_PAYMENTREQUEST_0_QTY0=1
&PAYMENTREQUEST_0_CURRENCYCODE=GBP
&PAYMENTREQUEST_0_ITEMAMT=2.08
&PAYMENTREQUEST_0_SHIPPINGAMT=3.65
&PAYMENTREQUEST_0_TAXAMT=0.52
&PAYMENTREQUEST_0_AMT=6.25
但是总数不是相加吗?
如果有帮助,这里是构建 url 的 php:
private function buildRequestItemsURL()
{
$this->db->select("bi_id, prod_id, bi_psc_id, prod_title, prod_sku, bi_price, bi_qty, basket_delivery");
$query = $this->db->get_where("basket_views", array("basket_session" => session_id()));
$i = 0;
$total = 0;
$url = "";
foreach($query->result() as $row)
{
$row->options = "";
if($i==0)
{
if(number_format($row->basket_delivery, 2) == 0.00)
{
header("location: http://www.mysite.co.uk/checkout/basket");
}
else
{
$delivery = $row->basket_delivery;
}
}
$this->db->select("opt_1_name AS Colour, opt_2_name AS Size, opt_3_name AS Flavour, opt_4_name AS Material, opt_5_name AS Style");
$this->db->where("psc_id", $row->bi_psc_id);
$query = $this->db->get("product_stock_view bio", 1);
foreach($query->first_row() as $key => $value)
{
$row->options .= (!is_null($value)) ? "{$key}: {$value}, " : "";
}
$row->bi_price = number_format($row->bi_price * 0.8, 2);
$row->options = substr($row->options, 0, -2);
$url .= "&L_PAYMENTREQUEST_0_NAME{$i}={$row->prod_title}&L_PAYMENTREQUEST_0_NUMBER{$i}={$row->prod_sku}&L_PAYMENTREQUEST_0_DESC{$i}={$row->options}&L_PAYMENTREQUEST_0_AMT{$i}={$row->bi_price}&L_PAYMENTREQUEST_0_QTY{$i}={$row->bi_qty}";
$total += (($row->bi_price)*$row->bi_qty);
++$i;
}
$itemTotal = $total;
$total += $delivery;
$total += ($itemTotal * 0.25);
$total = number_format($total, 2);
$itemTotal = number_format($itemTotal, 2);
$vat = $total - $itemTotal - $delivery;
$vat = number_format($vat, 2);
$url .= "&PAYMENTREQUEST_0_CURRENCYCODE=GBP&PAYMENTREQUEST_0_ITEMAMT={$itemTotal}&PAYMENTREQUEST_0_SHIPPINGAMT={$delivery}&PAYMENTREQUEST_0_TAXAMT={$vat}&PAYMENTREQUEST_0_AMT=".$total;
$url = urlencode($url);
$url = str_replace("%3F", "?", $url);
$url = str_replace("%26", "&", $url);
$url = str_replace("%3D", "=", $url);
return $url;
}
$url = "?METHOD=setExpressCheckout&VERSION=87.0&USER=user.mysite.co.uk&PWD=1340704478&SIGNATURE=AxhCd62FkHm-KuS.WvqjUnQ.l8WyAuePJQjoYT0C5lGiwjpcVIJHURjI&RETURNURL=http://www.mysite.co.uk/checkout/order/confirm&CANCELURL=http://www.mysite.co.uk/checkout/order/error";
$url .= $this->buildRequestItemsURL();
$url = "https://api.sandbox.paypal.com/nvp".$url;
最佳答案
问题出在产品描述中的 &。我更改了代码,使其将产品属性单独编码为 $url 字符串,从而删除了 &。这是新的 buildRequestItemsURL 函数代码:
private function buildRequestItemsURL()
{
$this->db->select("bi_id, prod_id, bi_psc_id, prod_title, prod_sku, bi_price, bi_qty, basket_delivery");
$query = $this->db->get_where("basket_views", array("basket_session" => session_id()));
foreach($query->result() as $row)
{
$row->prod_title = urlencode($row->prod_title);
$row->prod_sku = urlencode($row->prod_sku);
}
$i = 0;
$total = 0;
$url = "";
foreach($query->result() as $row)
{
$row->options = "";
if($i==0)
{
if(number_format($row->basket_delivery, 2) == 0.00)
{
header("location: http://www.crowstonstack.co.uk/checkout/basket");
}
else
{
$delivery = $row->basket_delivery;
}
}
$this->db->select("opt_1_name AS Colour, opt_2_name AS Size, opt_3_name AS Flavour, opt_4_name AS Material, opt_5_name AS Style");
$this->db->where("psc_id", $row->bi_psc_id);
$query = $this->db->get("product_stock_view bio", 1);
foreach($query->first_row() as $key => $value)
{
$row->options .= (!is_null($value)) ? urlencode("{$key}: {$value}, ") : "";
}
$row->bi_price = number_format($row->bi_price * 0.8, 2);
$row->options = substr($row->options, 0, -2);
$row->prod_title = str_replace("&", "%26", $row->prod_title);
$url .= "&L_PAYMENTREQUEST_0_NAME{$i}={$row->prod_title}&L_PAYMENTREQUEST_0_NUMBER{$i}={$row->prod_sku}&L_PAYMENTREQUEST_0_DESC{$i}={$row->options}&L_PAYMENTREQUEST_0_AMT{$i}={$row->bi_price}&L_PAYMENTREQUEST_0_QTY{$i}={$row->bi_qty}";
$total += (($row->bi_price)*$row->bi_qty);
++$i;
}
$itemTotal = $total;
$total += $delivery;
$total += ($itemTotal * 0.25);
$total = number_format($total, 2);
$itemTotal = number_format($itemTotal, 2);
$vat = $total - $itemTotal - $delivery;
$vat = number_format($vat, 2);
$url .= "&PAYMENTREQUEST_0_CURRENCYCODE=GBP&PAYMENTREQUEST_0_ITEMAMT={$itemTotal}&PAYMENTREQUEST_0_SHIPPINGAMT={$delivery}&PAYMENTREQUEST_0_TAXAMT={$vat}&PAYMENTREQUEST_0_AMT=".$total;
return $url;
}
关于php - Paypal setExpressCheckout nvp错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11971516/
当我对 PayPal 实时服务器进行 SetExpressCheckout API 调用时,我收到以下错误:“您没有注册接受数字交付商品的付款。” 该错误非常清楚地表明我应该从我的企业 PayPal
我正在研究 paypal api soap 方法。在进入实时模式时,我对数字商品有疑问。我们出售虚拟货币。在 paypal setExpressCheckout 上出现错误: You are not
调用 PayPal API SetExpressCheckout 方法获取支付链接并将客户转发到那里而不是使用支付按钮有什么好处? 最佳答案 访问者的浏览器客户端可以修改 PayPal 按钮。它只是基
由于 API 一直在变化,我尝试向开发人员测试业务付款时,我收到如下错误: array ( 'TIMESTAMP' => '2013-04-04T21:30:54Z', 'CORRELATIO
有什么方法可以通知我有人已通过 SetExpressCheckout 批准付款,如果他们没有被重定向回我的网站? 即。在他们批准付款后,我会收到回电或付款通知。 如果是这样,我该怎么做? 谢谢。 最佳
我有下面的代码可以从 paypal 获取 token ,但不知何故 paypal 一直向我发送错误消息,提示购物车商品总数与订单金额不符。我在这里做错了什么?
我创建了我的支付系统,并在 SetExpressCheckout AMT 参数中设置了一个变量,因为价格可能会发生变化。所以在 DoExpressCheckoutPayment 参数中我们也需要金额,
我有一些代码可以为 Paypal 构建请求 URL,但在某些项目上它返回以下错误(在响应转换为数组后): Array ( [TIMESTAMP] => 2012-08-15T14:23:10Z
我正在请求来自 paypal 的 setExpressCheckout 调用,我收到了错误代码 10413。在我从项目总额中扣除税款并将 &PAYMENTREQUEST_0_TAXAMT 添加到请求中
您好,有人可以帮我处理代码吗?我在处理我的网页时收到此错误: SetExpressCheckout API 调用失败。详细错误消息:安全 header 无效简短错误消息:安全错误错误代码:10002错
这个问题在这里已经有了答案: What is a NullReferenceException, and how do I fix it? (26 个答案) 关闭 3 年前。
当我尝试设置 ExpressCheckout 时,我得到 ack = success 但没有返回 token 。 paypal api的版本是87.0这里是 wsdl 链接:https://www.s
我正在使用 PayPal 的 API 通过 SetExpressCheckout 方法处理付款。 $requestParams = array( 'RETURNURL' => 'SUCCESS_
我在使用 PayPal 的 SetExpressCheckout 时遇到一些问题。我正在尝试为一件值(value) 11.96 欧元(含 21% 的增值税)的商品设置新的快速结账。但是,PayPal
我被困住了,需要有人为我指明正确的方向。 在本地主机上运行良好,但当我推送到我们数据中心(使用沙箱设置)中站点的测试版本时失败。我正在为 c# 使用 SDK 版本 2.1.96。有什么想法吗? 谢谢
好吧,PayPal 的文档和示例非常糟糕,所以我希望其他人可以帮助我解决这个问题。我正在使用他们的 NVP API 执行 PayPal SetExpressCheckout 请求。似乎我的代码产生的是
我在沙盒帐户中使用 setExpressCheckout 方法的 Expresscheckout 期间收到以下错误。我正在使用 SOAP 库 paypal_base.jar、paypal_stubs.
我有最新的 nvp sdk for java (76.0),我是否通过以下方式将参数发送到 paypal: NVPEncoder encoder = new NVPEncoder(); encoder
很抱歉这个简单的问题,但 Paypal 文档太可怕了。我正在将 paypal 集成到 flash 游戏中,并将数字商品 API 与 Paypal 快速结账结合使用。我的虚拟商品页面展示了 4 种不同的
以下是与 PayPal API 相关的问题。我正在使用 PayPal Express Checkout,我正在将其与 .NET 一起使用。 通过我们的软件,用户可以通过两种不同的方式使用 PayPal
我是一名优秀的程序员,十分优秀!