PayPal\Exception\PayPalConnectionException
Got Http response code 400 when accessing https://api.sandbox.paypal.com/v1/payments/payment/PAYID-L7KLVNA5VA13973Y0247405F/execute.
我的灵感来自:https://github.com/evolutednewmedia/paypal-rest-api-example/blob/master/src/response.php
我也尝试过:https://paypal.github.io/paypal-php-sdk/sample/doc/payments/executepayment.html
下面是我返回URL的代码:
public function actionResponse($paymentId, $PayerID)
{
if( $paypalPayment = PaypalPayment::find()->where(['transaction_id' => $paymentId])->one() ) {
$order = $paypalPayment->getOrder()->one();
}else{
die('Can not find PayPal reference in DB');
}
$apiContext = $this->getApiContext(self::OMT_PAYPAL_CLIENT_ID, self::OMT_PAYPAL_CLIENT_SECRET, self::OMT_PAYPAL_SANDBOX);
$amount = new Amount();
$amount->setCurrency($order->currency);
$amount->setTotal($order->amount/100);
$transaction = new Transaction();
$transaction->setAmount($amount);
$execution = new PaymentExecution();
$execution->setPayerId($PayerID);
$execution->addTransaction($transaction);
//die($execution);
$payment = Payment::get($paymentId, $apiContext);
try {
$payment->execute($execution, $apiContext);
try {
$paypalPayment = PaypalPayment::find()->where(['transaction_id' => $payment->getId()])->one();
$paypalPayment->payment_amount = $payment->transactions[0]->amount->total;
$paypalPayment->payment_status = $payment->getState();
$paypalPayment->invoice_id = $payment->transactions[0]->invoice_number;
if ($paypalPayment->save() && $paypalPayment->payment_status === 'approved') {
// Payment successfully added, redirect to the payment complete page.
echo 'success';
} else {
// Payment failed
echo 'Payment failed';
}
} catch (Exception $ex) {
// Failed to retrieve payment from PayPal
die('Failed to retrieve payment from PayPal');
echo $ex->getCode();
echo $ex->getData();
die($ex);
}
} catch (Exception $ex) {
// Failed to take payment
die('Failed to take payment from PayPal');
echo $ex->getCode();
echo $ex->getData();
die($ex);
}
}
{
"id": "PAYID-L7KNALA80B388166U211654T",
"intent": "sale",
"state": "failed",
"cart": "3AY17068NG554090V",
"payer": {
"payment_method": "paypal",
"status": "VERIFIED",
"payer_info": {
"email": "sb-mbri64023415@business.example.com",
"first_name": "John",
"last_name": "Doe",
"payer_id": "MWYZL3GMGV86S",
"shipping_address": {
"recipient_name": "John Doe",
"line1": "Rue du Cornet 6",
"city": "Verviers",
"state": "BE_zip = 4800",
"postal_code": "4800",
"country_code": "BE"
},
"country_code": "BE",
"business_name": "John Doe's Test Store"
}
},
"transactions": [
{
"amount": {
"total": "5880.60",
"currency": "EUR",
"details": {
"subtotal": "5880.60",
"tax": "0.00",
"shipping": "0.00"
}
},
"payee": {
"merchant_id": "AEVEQ26UKMLZL",
"email": "XXXX"
},
"description": "XXXX",
"custom": "b1900ec71f8694995925602422215428",
"invoice_number": "b1900ec71f8694995925602422215428",
"item_list": {
"shipping_address": {
"recipient_name": "John Doe",
"line1": "Rue du Cornet 6",
"city": "Verviers",
"state": "BE_zip = 4800",
"postal_code": "4800",
"country_code": "BE"
}
},
"related_resources": []
}
],
"create_time": "2020-12-12T14:14:04Z",
"update_time": "2020-12-12T14:17:17Z",
"links": [
{
"href": "https://api.sandbox.paypal.com/v1/payments/payment/PAYID-L7KNALA80B388166U211654T",
"rel": "self",
"method": "GET"
},
{
"href": "https://api.sandbox.paypal.com/v1/payments/payment/PAYID-L7KNALA80B388166U211654T/execute",
"rel": "execute",
"method": "POST"
},
{
"href": "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-3AY17068NG554090V",
"rel": "approval_url",
"method": "REDIRECT"
}
]
}
谢谢:)克莱姆
不推荐使用V1/Payments PayPal-PHP-SDK。
使用v2 Checkout-PHP-SDK,在这里进行了说明:https://developer.paypal.com/docs/business/checkout/server-side-api-calls/
您需要两条路由,一条用于“创建订单”,另一条用于“捕获订单”。
如何使用 PHP 自动PayPal付款? 我有我的PayPal企业帐户的电子邮件,收件人的PayPal电子邮件和要转移的金额。有没有办法在没有我互动的情况下进行汇款?(付款来自我的帐户) 当然我会手动运行PHP脚本
我正在学习有关如何使用PayPal-PHP-SDK的教程,我被困在控制台中的某个地方出现此错误: 更新 尝试更新函数名称后,日志中的新消息是: 这是代码: 任何方向,问题,以改善同一问题,评论,建议或要求澄清/更多信息,等等[...如能帮助解决这个问题,我将不胜感激。
本文向大家介绍SpringBoot集成支付宝沙箱支付(支付、退款),包括了SpringBoot集成支付宝沙箱支付(支付、退款)的使用技巧和注意事项,需要的朋友参考一下 前言 支付宝推出一个沙箱环境,能够很好的模拟支付宝支付,并且还提供了demo,但demo是一个普通web项目,怎么整合到Spring Boot项目呢,其实很简单 简单配置请参照支付宝沙箱支付开发文档 一、支付部分 AlipayCon
我正在尝试将Papal与我的SpringWeb服务集成。我指的是高级服务器集成,并使用此SDK创建支付示例。 这是我的客户端代码 这是我的网络服务 当我点击Paypal结账按钮时。它弹出Paypal登录屏幕,授权工作正常。之后,我尝试使用我的API执行付款。但是当我呼叫
在沙盒上测试快速结账时,买家无法找到信用卡的付款方式。 在页面的某个地方,我们找到了以下信息。 很抱歉,您的某些付款方式不适用于此次购买。 无法使用的付款方式: 信用卡、借记卡或即时银行转账 卖家帐户已启用为商务专业版。 我们是否缺少买方或卖方帐户的任何配置?
我们在PayPal沙箱上测试我们的应用程序。我能够通过一个账户(ewa)付款。tkacz@zoho.com)另一个(ewa.tkacz)-facilitator@mmigroup.pl),并且此付款的状态在付款人帐户(付款ID 3F335538TV000622E)上已完成,但在收款人业务帐户上,我无法看到此付款,也无法通过API获取它。 这个问题是贝宝的,正如你在Stackoverflow论坛上建