Javascript Paypal Api不直接通过PAY-XXX或PAYID-XXX
我的系统中的一切都处于良好状态,但从昨天起我就出现了这样的错误,我不明白为什么 错误:不要将PAY-XXX或PAYID-XXX直接传递到createOrder。改为传递EC-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=
贝宝,按钮({
风格:{
布局:“垂直”,
颜色:'黑色',
形状:“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){
}
}
怎么了