Как создать список товаров с помощью vue-paypal-checkout? - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь сгенерировать ответ на список товаров на запросы 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?

Большое спасибо

...