- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 dodirectpayment NVP 设置一个 paypal api,我从在线资源中收集了一些代码,但是当我提交它时,我没有得到任何响应,只是一个白屏。我注意到我的代码中没有任何回显,但我不确定如何回显 paypal 发送的任何响应。任何帮助都会很棒。所有客户信息和凭据都来自沙盒。谢谢!
enter code here <?php
class Paypal {
/**
* Last error message(s)
* @var array
*/
protected $_errors = array();
/**
* API Credentials
* Use the correct credentials for the environment in use (Live / Sandbox)
* @var array
*/
protected $_credentials = array(
'USER' => 'centerfusiondesign-test_api1.gmail.com',
'PWD' => 'JBTYXGQHZY37RXGH',
'SIGNATURE' => 'ANRk81o3BhdjleyZOhWslseXywLQAfcftsn6e71ykaqxRzNASgC3NYUn',
);
/**
* API endpoint
* Live - https://api-3t.paypal.com/nvp
* Sandbox - https://api-3t.sandbox.paypal.com/nvp
* @var string
*/
protected $_endPoint = 'https://api-3t.sandbox.paypal.com/nvp';
/**
* API Version
* @var string
*/
protected $_version = ' 95.0';
/**
* Make API request
*
* @param string $method string API method to request
* @param array $params Additional request parameters
* @return array / boolean Response array / boolean false on failure
*/
public function request($method,$params = array()) {
$this -> _errors = array();
if( empty($method) ) { //Check if API method is not empty
$this -> _errors = array('API method is missing');
return false;
}
//Our request parameters
$requestParams = array(
'METHOD' => $method,
'VERSION' => $this -> _version
) + $this -> _credentials;
//Building our NVP string
$request = http_build_query($requestParams + $params);
//cURL settings
$curlOptions = array (
CURLOPT_URL => $this -> _endPoint,
CURLOPT_VERBOSE => 1,
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_CAINFO => dirname(__FILE__) . '/cacert.pem', //CA cert file
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $request
);
$ch = curl_init();
curl_setopt_array($ch,$curlOptions);
//Sending our request - $response will hold the API response
$response = curl_exec($ch);
//Checking for cURL errors
if (curl_errno($ch)) {
$this -> _errors = curl_error($ch);
curl_close($ch);
return false;
//Handle errors
} else {
curl_close($ch);
$responseArray = array();
parse_str($response,$responseArray); // Break the NVP string to an array
return $responseArray;
}
}
}
$requestParams = array(
'IPADDRESS' => $_SERVER['REMOTE_ADDR'],
'PAYMENTACTION' => 'Sale'
);
$creditCardDetails = array(
'CREDITCARDTYPE' => 'Visa',
'ACCT' => '4032032109229382',
'EXPDATE' => '012020',
);
$payerDetails = array(
'FIRSTNAME' => 'John',
'LASTNAME' => 'Doe',
'COUNTRYCODE' => 'US',
'STATE' => 'NY',
'CITY' => 'New York',
'STREET' => '14 Argyle Rd.',
'ZIP' => '10010'
);
$orderParams = array(
'AMT' => '500',
'ITEMAMT' => '496',
'SHIPPINGAMT' => '4',
'CURRENCYCODE' => 'GBP'
);
$item = array(
'L_NAME0' => 'iPhone',
'L_DESC0' => 'White iPhone, 16GB',
'L_AMT0' => '496',
'L_QTY0' => '1'
);
$paypal = new Paypal();
$response = $paypal -> request('DoDirectPayment',
$requestParams + $creditCardDetails + $payerDetails + $orderParams + $item
);
if( is_array($response) && $response['ACK'] == 'Failure') { // Payment successful
// We'll fetch the transaction ID for internal bookkeeping
$transactionId = $response['TRANSACTIONID'];
}
?>
我对 PHP 有点陌生,所以希望我的错误太愚蠢了,谢谢!
最佳答案
您似乎启用了 CURL 对等证书验证,出于测试目的您可能希望禁用它,直到您在服务器上设置它。
替换:
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_CAINFO => dirname(__FILE__) . '/cacert.pem', //CA cert file
与:
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => FALSE,
此外,要检查响应,只需添加
print_r($response);
下面:
$response = $paypal -> request('DoDirectPayment',
$requestParams + $creditCardDetails + $payerDetails + $orderParams + $item
);
让我帮你得到下面的完整代码:
<?php
class Paypal {
/**
* Last error message(s)
* @var array
*/
protected $_errors = array();
/**
* API Credentials
* Use the correct credentials for the environment in use (Live / Sandbox)
* @var array
*/
protected $_credentials = array(
'USER' => 'centerfusiondesign-test_api1.gmail.com',
'PWD' => 'JBTYXGQHZY37RXGH',
'SIGNATURE' => 'ANRk81o3BhdjleyZOhWslseXywLQAfcftsn6e71ykaqxRzNASgC3NYUn',
);
/**
* API endpoint
* Live - https://api-3t.paypal.com/nvp
* Sandbox - https://api-3t.sandbox.paypal.com/nvp
* @var string
*/
protected $_endPoint = 'https://api-3t.sandbox.paypal.com/nvp';
/**
* API Version
* @var string
*/
protected $_version = ' 95.0';
/**
* Make API request
*
* @param string $method string API method to request
* @param array $params Additional request parameters
* @return array / boolean Response array / boolean false on failure
*/
public function request($method,$params = array()) {
$this -> _errors = array();
if( empty($method) ) { //Check if API method is not empty
$this -> _errors = array('API method is missing');
return false;
}
//Our request parameters
$requestParams = array(
'METHOD' => $method,
'VERSION' => $this -> _version
) + $this -> _credentials;
//Building our NVP string
$request = http_build_query($requestParams + $params);
//cURL settings
$curlOptions = array (
CURLOPT_URL => $this -> _endPoint,
CURLOPT_VERBOSE => 1,
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => FALSE,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $request
);
$ch = curl_init();
curl_setopt_array($ch,$curlOptions);
//Sending our request - $response will hold the API response
$response = curl_exec($ch);
//Checking for cURL errors
if (curl_errno($ch)) {
$this -> _errors = curl_error($ch);
curl_close($ch);
return false;
//Handle errors
} else {
curl_close($ch);
$responseArray = array();
parse_str($response,$responseArray); // Break the NVP string to an array
return $responseArray;
}
}
}
$requestParams = array(
'IPADDRESS' => $_SERVER['REMOTE_ADDR'],
'PAYMENTACTION' => 'Sale'
);
$creditCardDetails = array(
'CREDITCARDTYPE' => 'Visa',
'ACCT' => '4032032109229382',
'EXPDATE' => '012020',
);
$payerDetails = array(
'FIRSTNAME' => 'John',
'LASTNAME' => 'Doe',
'COUNTRYCODE' => 'US',
'STATE' => 'NY',
'CITY' => 'New York',
'STREET' => '14 Argyle Rd.',
'ZIP' => '10010'
);
$orderParams = array(
'AMT' => '500',
'ITEMAMT' => '496',
'SHIPPINGAMT' => '4',
'CURRENCYCODE' => 'GBP'
);
$item = array(
'L_NAME0' => 'iPhone',
'L_DESC0' => 'White iPhone, 16GB',
'L_AMT0' => '496',
'L_QTY0' => '1'
);
$paypal = new Paypal();
$response = $paypal -> request('DoDirectPayment',
$requestParams + $creditCardDetails + $payerDetails + $orderParams + $item
);
print_r($response);
if( is_array($response) && $response['ACK'] == 'Failure') { // Payment successful
// We'll fetch the transaction ID for internal bookkeeping
$transactionId = $response['TRANSACTIONID'];
}
?>
此外,您可能希望将您的沙盒企业帐户升级到专业版,请引用以下链接: https://stackoverflow.com/a/21926016/4410290
希望这会有所帮助.. :)
关于php - paypal api dodirectpayment nvp php 没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27872334/
我在使用 paypal 的 doDirectPayment 时遇到一个问题,我用参数提出了一个请求: 2560Ko 34612Ko 11:28:26 - 参数设置 2560Ko 34612Ko 11:
我正在处理电子商务应用程序,我已经设置了一个沙盒测试帐户并尝试使用“DoDirectPayment”API 但出现错误 “Invalid Merchant configuration”。我得到的信息是
我在 PayPal 沙箱中创建了两个测试账户(买家和卖家)。然后尝试通过我简单的网络应用程序转账。我正在使用 DoDirectPayment 方法汇款。方法返回以下结果: 直接支付成功完成:数组 (
我在我的网络应用程序中使用 Paypal DoDirectPayment(沙盒)。当我输入错误的信用卡信息时,API 会返回 ACK 状态以及响应正文。 故障时的响应* Array ( [TI
我正在尝试在我的网站上实现“DoDirectPayment”方法。我有 paypal 沙盒帐户,并且有 paypal api。当我将货币设置为“美元”时,我的代码会返回成功消息。但是,当我设置“HKD
这是我要发送的 url => https://api-3t.sandbox.paypal.com/nvp?&METHOD=CreateRecurringPaymentsProfile&USER=xxx
我正在使用 Paypal 的经典 API 进行直接付款。这是代码: require('merchant-sdk-php-master/samples/PPBootStrap.php')
当我尝试 DoDirectPayment 时,我收到错误代码,指出我的配置无效。尽管有一名 PayPal 员工回应了有人提出此问题的所有在线帖子,但我找不到实际的解决方法。 有没有办法从沙盒帐户添加
我正在尝试使用 PayPal 的 DoDirectPayment API 调用,我们已经购买了 PayPal Pro 并创建了一个用于测试的沙盒帐户。我将以下内容传递给调用(使用我们的沙盒身份验证):
我在 php 中使用 paypal 的示例代码 https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/
您好,我在一个网站上工作,该网站接受每位餐厅老板的 PayPal API 凭据,以便可以将金额直接转入他们的帐户。 我面临的问题是,有时餐厅老板会添加错误的 API 凭据,因此在下任何订单时出现“安全
我正在尝试在 PayPal 沙盒中设置一个测试平台,以便为我的公司实现/测试 DoDirectPay API。 DoDirectPay 根据文档和示例代码片段使用证书文件(而不是签名)here 根据谷
我正在使用 DoDirectPayment 通过 PayPal 处理信用卡。使用个人信用卡时一切都很好。当使用卡上有公司名称而不是名字和姓氏的商业信用卡时,我该如何处理? DoDirectPaymen
我正在使用 PayPal PHP SDK执行 DoDirectPayment 请求和 the example code并且类文档没有解释如何将电子邮件地址添加到请求中。这有可能吗? 谢谢! 最佳答案
我正在通过 DoDirectPayment 方法使用 Paypal 交易,我已经验证了我的 API 凭据大约 100 次;没错。 Array ( [TIMESTAMP] => 000
我正在尝试将 PayPal 模块集成到我们基于 osCommerce 的网站中 - 一个使用 PayPal DoDirectPayment (SOAP) API 来通过 PayPal 执行信用卡授权/
我使用 ASP 中的 NVP 调用在我的应用程序中集成了 Paypal 。我使用沙盒帐户来测试 Paypal 。它工作得很好。但是当谈到真实账户时,它显示错误 “由于商户配置无效,无法处理此交易。”
我正在尝试使用 dodirectpayment NVP 设置一个 paypal api,我从在线资源中收集了一些代码,但是当我提交它时,我没有得到任何响应,只是一个白屏。我注意到我的代码中没有任何回显
首先,这涉及桌面应用程序而不是 ASP .Net 应用程序。 我已经为我的项目添加了一个 Web 引用,并构建了各种数据对象,例如 PayerInfo、Address 和 CreditCard。但问题
我在一个网站上实现了 paypal doDirectPayment。对于沙盒测试,它可以正常运行,但对于实时模式,它会产生错误 L_ERRORCODE0 - 10501 L_SHORTMESSAGE0
我是一名优秀的程序员,十分优秀!