Я пытаюсь использовать IPN для обновления «статуса платежа» пользователя в моей MySQL таблице после того, как пользователь заплатил.
Я использую стандартную интеграционную кассу PayPal. После некоторого чтения я понял, что мне нужно отправить пользовательскую переменную, содержащую идентификатор таблицы пользователя MySQL, в PayPal, чтобы PayPal опубликовал ее в IPN после оплаты пользователем. Затем я могу получить запись MySQL, используя идентификатор пользователя, и обновить «статус платежа» на «оплачено».
Мне удалось сделать все, что указано выше, за исключением отправки настраиваемой переменной с помощью стандартной проверки интеграции PayPal. Я знаю, что код для отправки пользовательской переменной выглядит примерно так:
<input type='hidden' name='custom' value='<?php echo $id; ?>'/>
В приведенном выше коде $ id - это идентификатор пользователя из таблицы MySQL, которую я поместил в переменную php. .
У меня вопрос, где мне включить этот код? Вот стандартный код проверки интеграции, который PayPal дал мне вставить в мой браузер (за исключением моего идентификатора клиента, по очевидным причинам).
<script src="https://www.paypal.com/sdk/js?client-id=my_client_id">
</script>
<div id="paypal-button-container"></div>
<!-- Add the checkout buttons, set up the order and approve the order -->
<script>
paypal.Buttons({
createOrder: function(data, actions) {
return actions.order.create({
purchase_units: [{
amount: {
value: '29.99'
}
}]
});
},
onApprove: function(data, actions) {
return actions.order.capture().then(function(details) {
alert('Transaction completed by ' + details.payer.name.given_name);
});
}
}).render('#paypal-button-container'); // Display payment options on your web page
</script>
EDIT:
Я понял что этот процесс проще с использованием базовой настройки интеграции PayPal c, и что я могу использовать переменную Purcha_units "custom_id". Однако я хотел бы сделать пользовательский идентификатор переменной javascript, которую я определил ранее в документе, например:
<div id="paypal-button-container"></div>
<script src="https://www.paypal.com/sdk/js?client-id=my_client_id¤cy=USD" data-sdk-integration-source="button-factory"></script>
<script>
paypal.Buttons({
style: {
shape: 'pill',
color: 'white',
layout: 'vertical',
label: 'paypal',
},
createOrder: function(data, actions) {
return actions.order.create({
purchase_units: [{
amount: {
value: '29.99'
}
custom_id: {
value: id
}
}],
application_context: {
shipping_preference: 'NO_SHIPPING'
}
});
},
onApprove: function(data, actions) {
return actions.order.capture().then(function(details) {
alert('Transaction completed by ' + details.payer.name.given_name + '!');
});
}
}).render('#paypal-button-container');
</script>
Но это не работает :(. Фактически, я не могу получить переменная custom_id должна работать вообще. Есть ли у кого-нибудь предложения, как это исправить?