Javascript Paypal Api不直接通过PAY-XXX或PAYID-XXX

Javascript Paypal Api不直接通过PAY-XXX或PAYID-XXX,javascript,php,laravel,paypal,Javascript,Php,Laravel,Paypal,我的系统中的一切都处于良好状态,但从昨天起我就出现了这样的错误,我不明白为什么 错误:不要将PAY-XXX或PAYID-XXX直接传递到createOrder。改为传递EC-XXX令牌 这是我的智能支付按钮脚本 贝宝,按钮({ 风格:{ 布局:“垂直”, 颜色:'黑色', 形状:“rect”, 标签:“贝宝”, 标语:错, 尺寸:'响应', }, createOrder:function(){ var SETEC_URL='/api/create payment'; var checkBox=

我的系统中的一切都处于良好状态,但从昨天起我就出现了这样的错误,我不明白为什么

错误:不要将PAY-XXX或PAYID-XXX直接传递到createOrder。改为传递EC-XXX令牌

这是我的智能支付按钮脚本


贝宝,按钮({
风格:{
布局:“垂直”,
颜色:'黑色',
形状:“rect”,
标签:“贝宝”,
标语:错,
尺寸:'响应',
},
createOrder:function(){
var SETEC_URL='/api/create payment';
var checkBox=document.getElementById(“ship_to_different”);
var note=$(“#ordernote”).val();
如果(checkBox.checked==true){
var body=$(“#签出,#数据”).serializeArray();
}否则{
$('input[name=note]').val(note);
var body=$(“#数据”).serializeArray();
}
$(“#等待”).show();
返回获取(SETEC_URL{
方法:“post”,
标题:{
“内容类型”:“应用程序/json”
},
正文:JSON.stringify({
身体:身体
})
}).然后(功能(res){
返回res.json();
}).then(功能(数据){
返回data.id;
});
},
犯:错,
onApprove:函数(数据){
var EXECUTE_URL='/api/EXECUTE payment';
返回fetch(执行URL{
方法:“post”,
标题:{
“内容类型”:“应用程序/json”
},
正文:JSON.stringify({
paymentID:data.paymentID,
payerID:data.payerID,
})
}).然后(功能(响应){
控制台日志(响应);
如果(response.statusText==“确定”){
var复选框=
document.getElementById(“ship_to_different”);
var note=$(“#ordernote”).val();
如果(checkBox.checked==true){
变量扩展数据=$(“#签出,#数据”).serialize();
}否则{
$('input[name=note]').val(note);
变量扩展数据=$(“#数据”).serialize();
}
$.ajax({
键入:“post”,
url:“检查数据”,
数据:扩展数据,
成功:函数(){
$(“#等待”).hide();
$(“#成功”).show();
},
错误:函数(请求){
json=$.parseJSON(request.responseText);
$.each(json.errors,函数(键,值){
$('#error'+key.html('');
$('#error'+key).append('

“+value+”

”); }); } }); } }) },onError:函数(err){ 控制台日志(err); } }).render(“#贝宝按钮容器”);
这是我的后端创建支付功能:

public function createorder(Request $request){

    $body = json_decode(json_encode($request['body']),true);

    foreach($body as $valpay){
        if($valpay['name'] == '_token'){
            unset($valpay);
        }elseif($valpay['name'] == 'title[]'){
            $titlepay[] = $valpay['value'];
        }elseif($valpay['name'] == 'product_id[]'){
            $product_idpay[] = $valpay['value'];
        }elseif($valpay['name'] == 'price[]'){
            $pricepay[] = $valpay['value'];
        }elseif($valpay['name'] == 'quantity[]'){
            $quantitypay[] = $valpay['value'];
        }elseif($valpay['name'] == 'ssh'){
            $shippingpay = $valpay['value'];
        }elseif($valpay['name'] == 'total'){
            $totalpay = $valpay['value'];
        }elseif($valpay['name'] == 'subtotal'){
            $subtotalpay = $valpay['value'];
        }elseif($valpay['name'] == 'tax'){
            $taxpay = $valpay['value'];
        }elseif($valpay['name'] == 'city'){
            $city = $valpay['value'];
        }elseif($valpay['name'] == 'country'){
            $country = $valpay['value'];
        }elseif($valpay['name'] == 'state'){
            $state = $valpay['value'];
        }elseif($valpay['name'] == 'street'){
            $street = $valpay['value'];
        }elseif($valpay['name'] == 'zip'){
            $zip = $valpay['value'];
        }elseif($valpay['name'] == 'coupon'){
            $coupon = $valpay['value'];
        }elseif($valpay['name'] == 'discount'){
            $discount = $valpay['value'];
        }elseif($valpay['name'] == 'data'){
            $data = $valpay['value'];
        }elseif($valpay['name'] == 'x1'){
            $gift = $valpay['value'];
        }elseif($valpay['name'] == 'cost'){
            $cost = $valpay['value'];
        }

    }


    $apiContext = new  ApiContext(
        new OAuthTokenCredential(
            'clientid',
            'secret'
        ));
    $payer = new Payer();
    $payer->setPaymentMethod("paypal");


    if(isset($gift)){
        $item = new Item();
        $item->setName('Gift Coupon')
            ->setCurrency('USD')
            ->setQuantity('1')
            ->setPrice($cost);
        $items[] = $item;
        $subtotalpay = $cost;
        $totalpay = $cost;
    }else{
        foreach ($product_idpay as $key => $p_id){
            $item[$key] = new Item();
            $item[$key]->setName($titlepay[$key])
                ->setCurrency('USD')
                ->setQuantity($quantitypay[$key])
                ->setSku("123123") 
                ->setPrice($pricepay[$key]);
            $items[] = $item[$key];
        }
    }


    if(isset($coupon)){

        $subtotalpay = $coupon;
        $item[$key+1] = new Item();
        $item[$key+1]->setName('Coupon')
            ->setCurrency('USD')
            ->setQuantity("1")
            ->setSku("test") // Similar to `item_number` in Classic API
            ->setPrice('-'.$discount);
        $items[] = $item[$key+1];
    }

    if($taxpay == '1'){
        $tax = round($subtotalpay * 8.625/100,2);

    }else{
        $tax = 0;
    }
    $itemList = new ItemList();
    $itemList->setItems($items);


    $details = new Details();
    $details->setShipping($shippingpay)
        ->setTax($tax)
        ->setSubtotal($subtotalpay);

    $amount = new Amount();
    $amount->setCurrency("USD")
        ->setTotal($totalpay)
        ->setDetails($details);

    $transaction = new Transaction();
    $transaction->setAmount($amount)
        ->setItemList($itemList)
        ->setDescription("Payment description")
        ->setInvoiceNumber(uniqid());

    $redirectUrls = new RedirectUrls();
    $redirectUrls->setReturnUrl("http://homee.test/checkout")
        ->setCancelUrl("http://homee.test/checkout");

    $inputFields = new InputFields();
    $inputFields->setNoShipping(1);

    $webProfile = new WebProfile();
    $webProfile->setName('test'. uniqid())->setInputFields($inputFields);
    $webProfileId = $webProfile->create($apiContext)->getId();
    $payment = new Payment();
    $payment->setExperienceProfileId($webProfileId);
    $payment->setIntent("sale")
        ->setPayer($payer)
        ->setRedirectUrls($redirectUrls)
        ->setTransactions(array($transaction));

    $request = clone $payment;

    try {
        $payment->create($apiContext);
    } catch (PayPalConnectionException $ex) {
        echo $ex->getCode(); // Prints the Error Code
        echo $ex->getData(); // Prints the detailed error message
        die($ex);
    } catch (Exception $ex) {
        die($ex);
    }

    $approvalUrl = $payment->getApprovalLink();

    return $payment;
}
这是执行支付功能

public function execute(Request $request){

    $apiContext = new ApiContext(
        new OAuthTokenCredential(
            'clientid',
            'secret'
        ));


    $paymentId = $request->paymentID;
    $payment = Payment::get($paymentId, $apiContext);

    $execution = new PaymentExecution();
    $execution->setPayerId($request->payerID);

    try{
        $result = $payment->execute($execution, $apiContext);
        $res = $result->transactions[0]->related_resources[0]->sale->id;
        $res2 = $result->transactions[0]->invoice_number;
        $res3 = $result->getId();

        Transactions::create([
            'ip' => \Request::ip(),
            'transaction_id' => $res,
            'invoice_id' => $res2,
            'payment_id' => $res3
        ]);
        Refunds::create([
            'ip' => \Request::ip(),
            'transaction_id' => $res,
            'invoice_id' => $res2,
            'payment_id' => $res3,
            'amount' => '0'
        ]);

    }catch (Exception $e){
        echo $e->getMessage();
        exit(1);
    }


}

public function validateorder(Request $request)
{
    if($request['status']) {
        $messages = array(
            'zip' => 'Post Code Field is Required.'
        );
        $validator = Validator::make($request->all(), [
            'street' => 'required',
            'city' => 'required',
            'state' => 'required',
            'zip' => 'required',


        ]);
    }elseif($request['guest']) {
        $validator = Validator::make($request->all(), [
            'name' => 'required',
            'email' => 'required',
            'country' => 'required',
            'phone' => 'required',
            'street' => 'required',
            'city' => 'required',
            'state' => 'required',
            'zip' => 'required',


        ]);
    }elseif($request['x1']) {
        $validator = Validator::make($request->all(), [
            'email' => 'required'

        ]);
    }
        try
        {
            if ($validator->fails()) {
                return response()->json($validator->errors(), 422);
            }
        }
        catch (\Exception $e){
        }

    }
怎么了