Как использовать PayPal для нескольких продавцов? - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь создать несколько магазинов, где разные продавцы должны продавать свои продукты, и каждый продавец должен использовать свою учетную запись PayPal.
Я хотел бы показать форму PayPal с данными оформления заказа и идентификатором продавца, чтобы получить платеж с правильным идентификатором продавца для каждого магазина.

На веб-сайте для настольных компьютеров я использовал приведенный ниже пост действий для каждого продавца, и он отлично работает:

action: "https://www.paypal.com/it/cgi-bin/webscr"
param1: name=business and value="xxxxxxx"
param2: ....
etc...

В ionic3 я пытаюсь использовать новый JavaScript PayPal SDK.

1 - я называю свой идентификатор клиента в заголовке index.html, как показано ниже:

<script src="https://www.paypal.com/sdk/js?client-id=xxxxx&currency=EUR"></script>  

2 - В кнопке PayPal я пытался передать идентификатор продавца каждого магазина в команде получателя, кроме PayPal, но я получаю ошибку:

Передайте merchant-id = "XYZ" в тег скрипта PayPal. Проходить идентификатор продавца = неизвестно, если у вас нет доступа к идентификатору продавца.

Очевидно, у меня есть идентификатор продавца, который я передаю в команде получателя, как вы можете видеть из приведенного ниже сценария. Где я не прав?

Ниже мой скрипт кнопки:

initPayPal() {
var _totaleOrdine = this.totaleOrdine.toString();

var _merchant: string = 'XXXXXXXXX';

  paypal.Buttons({
    env: 'sandbox', // sandbox | production
      locale: 'it_IT',

      //ref: https://developer.paypal.com/docs/integration/direct/express-checkout/integration-jsv4/customize-button/
    style: {
        size: 'responsive',
        color: 'gold',
        shape: 'pill',
        label: 'buynow', // label: checkout, buynow, credit, pay, paypal
        tagline: false

      },

    commit: true,
    debug: true,

     createOrder: function(data, actions) {
      // Set up the transaction
        console.log(data);
        console.log(actions);

        return actions.order.create({

        application_context: {
            brand_name: "MyBrand",
        },


        purchase_units: [{

     //   reference_id:_merchant,

          amount: {
            value: _totaleOrdine,
          },

          payee: {
            email: 'merchant2@mydomain.it',
            merchant_id: 'xxxxx'
          },

          shipping: {
            address: {

                address_line_1: "Via Roma 10",
                address_line_2: "",
                admin_area_2: "Roma",
                admin_area_1: "RM",
                postal_code: "00100",
                country_code: "IT",

            },

            name:{
                full_name: "adam adami"
            },
          },

        }],
});
},
     onApprove: function(data, actions) {
      return actions.order.capture().then(function(details) {
        alert('Transaction completed by ' + details.payer.name.given_name);
       console.log(details);
        // Call your server to save the transaction
        return fetch('/paypal-transaction-complete', {
          method: 'post',
          body: JSON.stringify({
            orderID: data.orderID
          })
        });
        //
      });

    },

     onCancel: function(data, actions) {
        /*
         * Buyer cancelled the payment
         */
         console.log("Buyer cancelled the payment");
      },

     onError: function(err) {
        /*
         * An error occurred during the transaction
         */
         console.log(err);
         console.log("An error occurred during the transaction");
      }

  }).render(this.paypalbuttoncontainer2);
...