Я пытаюсь создать несколько магазинов, где разные продавцы должны продавать свои продукты, и каждый продавец должен использовать свою учетную запись 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¤cy=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);