В настоящее время я интегрирую сервис Paypal в свой проект Vue.Я сослался на официальный документ и скопировал код https://developer.paypal.com/docs/checkout/integrate/#6-verify-the-transaction. Я смог отобразить кнопку Paypal, завершить транзакцию и получить идентификатор заказа.Однако я не могу отправить orderID на мой сервер из-за следующей ошибки: this. $ Store не определено. Обратите внимание, что , я смог сослаться на это. $ Store в моих других компонентах .Ниже приведен мой следующий код:
Обновление : я попытался console.log (this) в методе onApprove, и он возвращает неопределенное значение.Это проблема?
Обновление Я преобразовал метод OnApprove и метод capture () в функцию arrow и получил другое сообщение об ошибке this. $ Store.dispatch (...).then (...). err не является функцией
Обновление Мне удалось исправить вышеуказанную ошибку, изменив .err () на .catch ().
Обновление Я столкнулся с другой проблемой, иногда при нажатии на кнопку Paypal внешнее окно Paypal немедленно закрывается.Я должен нажать на кнопку несколько раз, чтобы предотвратить это странное поведение.Я пошел в журнал консоли и нашел это сообщение, как показано на следующем снимке экрана.
<template>
<div>
<div id="paypal-button-container"></div>
</div>
</template>
<script>
import { PRODUCT_PAYPAL } from "@/store/actions/products";
export default {
mounted() {
paypal
.Buttons({
createOrder: function(data, actions) {
return actions.order.create({
purchase_units: [
{
amount: {
value: "0.01"
}
}
]
});
},
onApprove: (data, actions) => {
return actions.order.capture().then(details => {
alert("Transaction completed by " + details.payer.name.given_name);
console.log("orderID is ");
console.log(data.orderID);
// Call your server to save the transaction
return this.$store
.dispatch(PRODUCT_PAYPAL, data.orderID)
.then(() => {
alert("success");
})
.catch(() => {
alert("error");
});
});
}
})
.render("#paypal-button-container");
}
};
</script>
<style>
</style>
Как показано на следующем снимке экрана, я смог получить orderID, что означает, что транзакция прошла успешно.Однако этот. $ Store не определен.Поэтому я не могу отправить идентификатор заказа на свой сервер