Я пытаюсь сгенерировать ответ на список товаров на запросы PayPal. Я пытаюсь сделать это динамически, используя мои объекты данных и некоторые вычисленные свойства в цикле for in . Насколько я понял, мой items_list всегда должен быть переменной данных, а не жестко заданным массивом.
Вот мой шаблонный элемент:
<div v-bind:key="plan.key" v-for="plan in plans" >
<PayPal
:amount="plan.price" // all good
currency="GBP" // all good
:client="credentials" // all good
env="sandbox" // all good
:items="[plan]" // this is NOT working
@payment-authorized="payment_authorized_cb" // all good
@payment-completed="payment_completed_cb" // all good
@payment-cancelled="payment_cancelled_cb" // all good
>
</PayPal>
</div>
Вот мои объекты данных в моем скрипте:
plans: {
smallPlan: {
name: 'Small Venue',
price: '6',
},
mediumPlan: {
name: 'Medium Department',
price: '22',
},
}
payment_completed: {
payment_completed_cb() {
}
},
payment_authorized: {
payment_authorized_cb() {
}
},
payment_cancelled: {
payment_cancelled_cb() {
}
},
Вот мои методы:
methods: {
payment_completed_cb(res, planName){
toastr.success("Thank you! We'll send you a confirmation email soon with your invoice. ");
console.log(res);
},
payment_authorized_cb(res){
console.log(res);
},
payment_cancelled_cb(res){
toastr.error("The payment process has been canceled. No money was taken from your account.");
console.log(res);
},
Документация по Vue-PayPal-Checkout доступна здесь https://www.npmjs.com/package/vue-paypal-checkout
Если я не добавлю список предметов : предметы все отлично работает:
{ "ID": "PAY-02N9173803167370DLPMKKZY", "намерение": "продажа", "государство": "утвержден", "корзинка": "90B34422XX075534E", "create_time": "2018-10-30T18: 39 : 51Z " "плательщик": { "PAYMENT_METHOD": "PayPal", "статус": "проверенный", "payer_info": { "электронная почта": "joaoalvesmarrucho-buyer@gmail.com", "first_name":" тест "," middle_name ":" test "," last_name ":" покупатель "," payer_id ":" JCZUFUEQV33WU "," country_code ":" US "," shipping_address ": {" receient_name ":" тестовый покупатель "," line1 ":" 1 Main St "," city ":" San Jose "," state ":" CA "," postal_code ":" 95131 "," country_code ":" US "}}}," Transactions ": [{ "сумма": { "всего": "245,00", "валюта": "GBP", "детали": {}}, "item_list": {}, "related_resources": [{ "продажа": { "ID" : "2RA79134UX2301839", "состояние": "ожидание", "payment_mode": "INSTANT_TRANSFER", "protection_eligibility": "Допущено", "parent_payment": "PAY-02N9173803167370DLPMKKZY", "create_time": "2018-10-30T18: 39: 50Z», "update_time": "2018-10-30T18: 39: 50Z", "reason_code": "RECEIVING_PREFERENCE_MANDATES_MANUAL_ACTION", "количество": { "всего": "245,00", "валюта": "GBP", "подробности": { "субтотальная": "245,00"}} }}]}]}
Но если я добавлю: items = "[plan]", я получу это сообщение об ошибке:
Uncaught Error: Ошибка: Запрос на публикацию https://www.sandbox.paypal.com/v1/payments/payment завершился с ошибкой 400. Идентификатор корреляции: 19238526650f5, 19238526650f5
{
"имя": "VALIDATION_ERROR",
"подробности": [
{
"field": "Transactions.item_list.items.item_key",
"issue": "Это имя поля не определено для этого типа ресурса"
}
],
"message": "Неверный запрос - подробности",
"information_link": "https://developer.paypal.com/docs/api/payments/#errors",
"debug_id": "19238526650f5"
Есть мысли?
Также, если вам случится узнать, есть ли способ продать / реализовать подписку вместо одноразовой транзакции, используя Vue-paypal-checkout?
Большое спасибо