当前位置: 首页 > 知识库问答 >
问题:

如何修复Paypal签出订单创建错误

阎英朗
2023-03-14

我使用Laravel 8框架的PHP和我试图集成贝宝到我的本地网络。然而,我被困在create_order_error,即使我严格遵循贝宝提供的一些样本片段,我仍然遇到这个亲

参考文献:

  • https://developer.paypal.com/demo/checkout/#/pattern/server

错误:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

<script>
    // Render the PayPal button into #paypal-button-container
    paypal.Buttons({
        style: {
            shape:  'pill',
            layout: 'horizontal',
            color:  'blue',
            height: 35
        },
        // Call your server to set up the transaction
        createOrder: function(data, actions) {
            return fetch('/billing/createOrder', {
                method: 'post',
                headers: {
                    'content-type': 'application/json'
                }
            }).then(function(res) {
                return res.json();
            }).then(function(orderData) {
                return orderData.id;
            });
        },

        
    }).render('#paypal-button-container');
</script>

注意:我已经删除了onApven函数,因为我卡在createOrder上了

控制器

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use PayPalCheckoutSdk\Core\PayPalHttpClient;
use PayPalCheckoutSdk\Core\SandboxEnvironment;
use PayPalCheckoutSdk\Orders\OrdersCreateRequest;
use PayPalCheckoutSdk\Orders\OrdersCaptureRequest;
use PayPalHttp\HttpException;

class PaypalCheckoutController extends Controller
{

    private $environment;
    private $client;

    public function __construct()
    {
        $this->environment = new SandboxEnvironment(config('paypal.client_id'), config('paypal.secret'));
        $this->client = new PayPalHttpClient($this->environment);
    }

    public function index(Request $request)
    {
        return view('payment.checkout');
    }

    public function createOrder(Request $request) 
    {
        
        $order = new OrdersCreateRequest();
        $order->prefer('return=representation');

        $order->body = array(
            'intent' => 'CAPTURE',
            'application_context' =>
                array(
                    'return_url' => 'http://dummyweb.test/billing/checkout',
                    'cancel_url' => 'http://dummyweb.test/billing/checkout'
                ),
            'purchase_units' =>
                array(
                    0 =>
                        array(
                            'amount' =>
                                array(
                                    'currency_code' => 'PHP',
                                    'value' => '420.00'
                                )
                        )
                )
        );
        try {
            $result = $this->client->execute($order);
            return $result;
        }
        catch(HttpException $ex) {
            print_r($ex->getMessage());
        }
    }
}

共有2个答案

陈增
2023-03-14

试试看

return response()->json($result);

在获取请求的add头中

Accept: 'application/json'
施阳曜
2023-03-14

语法错误:意外令牌

当浏览器调用/billing/createOrder时,您返回的不是JSON。您必须只返回JSON。

使用浏览器开发工具中的网络选项卡,或者在新选项卡中加载路径,以检查您实际返回的响应体。

它显然不是JSON。根据该错误消息,它将以一些HTML开头(代码

只返回JSON。您需要能够将整个响应体复制到JSON验证器中,并使其正常。

 类似资料:
  • 我遵循以下示例(https://developer.PayPal.com/docs/checkout/reference/server-integration/set-up-transaction/#on-the-server),以使PayPal在服务器上工作。 我的问题是,有可能同时创建秩序、授权和捕获吗? 谢谢

  • 我发现了一个mysql创建表语法错误,希望有人能在我失去理智之前发现它。 错误1064(42000):您的SQL语法中有错误;查看与您的MySQL server版本相对应的手册,以了解在第2行“int not null auto_increment,Client_ID int not null,Start_Time varchar(5),star”附近使用的正确语法 mysql Ver 14.14

  • 当我运行应用程序时,会显示以下错误: 下面是我的文件“pamdabatchConfigurer.java”: 我真的不知道这个错误是从哪里来的,有人能帮我一下吗?

  • 编译时,编译器抛出以下错误: 错误:- 严重性代码描述项目文件行抑制状态错误无法为类:Android创建JavaTypeInfo。支持V4。看法可访问性。由于系统原因,AccessibilityManagerCompat/IAAccessibilityStateChangeListenerImplementor无法访问。伊奥。DirectoryNotFoundException:找不到路径“C:\

  • 在android a有一个URL像http://api.openweathermap.org/data/2.5/forecast/daily?q=khulna 所以我使用Uri构建器 但输出 http://api.openweathermap.org/data/2.5/forecast/daily?q=khulna 这里有两个额外的字符'&'和'='; 我将这个URI转换为字符串,并使用repla

  • 说明 支付宝境外到店支付-预创建订单 官方文档:https://global.alipay.com/service/transaction_QR_Code/13 类 请求参数类 请求参数 类名:\Yurun\PaySDK\AlipayCrossBorder\InStore\PreCreate\Request 属性 名称 类型 说明 $service string 接口名称 $notify_url