我们的PayPal付款流程存在问题。有时用户在重定向到PayPal时会出错,大多数情况下都没有。由于它似乎不依赖于他们正在使用的设备,我不知道该做什么。每个第三次PayPal付款都会出现此问题,如果客户再次发送订单,则可以在第二次或第三次尝试时使用。
我们在非商店网站上使用Jeremy Desvaux的PayPal PHP Manager。意味着没有框架,一切都由我们的开发人员编码。
是否有人将自己称为PayPal天才来帮助我们?
尝试使用PayPal付款时出现错误消息:
致命错误:无法使用PayPal \ Api \ Links类型的对象作为数组 ... / 721行的Checkout.php
PHP代码
正如您所看到的,第一行中有一条评论,我们的开发人员试图通过使用getApprovalLink方法解决该问题。
//$redirectUrl = $payment->getApprovalLink();
$redirectUrl = $payment->links[1]["href"];
$paymentID = $payment->id;
$sql = sprintf("INSERT INTO exampleTable VALUES (%d, '%s')", $this->exampleValue1, $exampleValue2);
$this->MainDB->query($sql);
header("Location: ".$redirectUrl);
exit;
break;
我还发现了一个问题,可能是同一个问题,但没有得到答案。
PayPal first redirect crash, second one redirect the user successfully
修改
这是PayPal \ Api \ Links类
<?php
namespace PayPal\Api;
use PayPal\Common\PayPalModel;
/**
* Class Links
*
*
*
* @package PayPal\Api
*
* @property string href
* @property string rel
* @property \PayPal\Api\HyperSchema targetSchema
* @property string method
* @property string enctype
* @property \PayPal\Api\HyperSchema schema
*/
class Links extends PayPalModel
{
/**
* Sets Href
*
* @param string $href
*
* @return $this
*/
public function setHref($href)
{
$this->href = $href;
return $this;
}
/**
* Gets Href
*
* @return string
*/
public function getHref()
{
return $this->href;
}
/**
* Sets Rel
*
* @param string $rel
*
* @return $this
*/
public function setRel($rel)
{
$this->rel = $rel;
return $this;
}
/**
* Gets Rel
*
* @return string
*/
public function getRel()
{
return $this->rel;
}
/**
* Sets TargetSchema
*
* @param \PayPal\Api\HyperSchema $targetSchema
*
* @return $this
*/
public function setTargetSchema($targetSchema)
{
$this->targetSchema = $targetSchema;
return $this;
}
/**
* Gets TargetSchema
*
* @return \PayPal\Api\HyperSchema
*/
public function getTargetSchema()
{
return $this->targetSchema;
}
/**
* Sets Method
*
* @param string $method
*
* @return $this
*/
public function setMethod($method)
{
$this->method = $method;
return $this;
}
/**
* Gets Method
*
* @return string
*/
public function getMethod()
{
return $this->method;
}
/**
* Sets Enctype
*
* @param string $enctype
*
* @return $this
*/
public function setEnctype($enctype)
{
$this->enctype = $enctype;
return $this;
}
/**
* Gets Enctype
*
* @return string
*/
public function getEnctype()
{
return $this->enctype;
}
/**
* Sets Schema
*
* @param \PayPal\Api\HyperSchema $schema
*
* @return $this
*/
public function setSchema($schema)
{
$this->schema = $schema;
return $this;
}
/**
* Gets Schema
*
* @return \PayPal\Api\HyperSchema
*/
public function getSchema()
{
return $this->schema;
}
}
编辑2:
现在我使用$payment->links->getHref()
代替$payment->links[1]["href"]
我收到了以下错误:
致命错误:在非对象上调用成员函数getHref() ../ Checkout.php 在 722
上
这很奇怪,因为它似乎既不是对象的方法,也不是数组。
有关于此的任何想法吗?
答案 0 :(得分:0)
您可以发布Paypal \ Api \ Links课程吗?当它是一个对象时,您尝试将链接作为数组进行访问。这意味着Links属性设置不正确,或者您需要将其视为对象而不是数组。