Как мне опубликовать orderID на сервере, используя PayPal SDK? Пример кода не работает ни на локальном хосте, ни на удаленном хосте. После отправки сообщения PayPal сообщение пусто.
Согласно,
https://developer.paypal.com/docs/checkout/integrate/#6-verify-the-transaction
PayBundle \ Resources \ actions \ ppal \ ppalAction_brt_stkovr.php
<?php
use PayBundle\actions\Order;
echo "<br><br> POST ="; print_r($_POST);
file_put_contents( PHP_EOL . PHP_EOL . __DIR__ .'/out.php', json_encode( $_POST ) .' from '.__FILE__, FILE_APPEND );
include_once ( PATH_ACTIONS_PAY . '/ppal/__init.php' );
include_once ( PATH_ACTIONS_PAY . '/ppal/__payAInit.php' );
require_once PATH_VENDOR . '/braintree/braintree_php/lib/Braintree.php';
use Sample\PayPalClient;
use PayPalCheckoutSdk\Orders\OrdersGetRequest;
Braintree_Configuration::environment( 'sandbox' );
Braintree_Configuration::merchantId( 'x' );
Braintree_Configuration::publicKey( 'y' );
Braintree_Configuration::privateKey( 'z' );
if( isset($_POST['payPp'] ) ) {
include_once ( PATH_ACTIONS_PAY . '/ppal/pay/'.$this->vdArr['lang'].'/__Bk.php' );
echo "<br> from ppalAction orderID = "; print_r($this->vdArr['orderID']);
if ( !count(debug_backtrace()) ) {
$ppalOrder = new GetOrder();
$ppalOrder->getOrder( $this->vdArr['orderID'], true);
} // if ( !count(debug_backtrace())
} // if( isset($_POST['paypalA'] ) ) {
else {
$this->vdArr['tokenPpal'] = Braintree_ClientToken::generate();
}
код клиента:
<script type='text/javascript' >
window.onload = function() {
paypal.Buttons({
createOrder: function(data, actions) {
return actions.order.create({
purchase_units: [{
amount: {
value: '0.01'
}
}]
});
},
onApprove: function( data, actions ) {
return actions.order.capture().then( function(details) {
//alert('Transaction completed by ' + details.payer.name.given_name);
// Call your server to save the transaction
//console.log('Transaction completed' ); alert(details);
console.log( 'data.orderID = ' + data.orderID );
document.getElementById('orderID').value = data.orderID;
console.log('data'); console.log(data);
console.log('Transaction completed by ' + details.payer.name.given_name );
//return fetch('/paypal-transaction-complete', {
return fetch( 'https://typejoy.biz/pay/ppal_1025/EN/pay', {
method: 'POST',
body: JSON.stringify({
orderID: data.orderID,
payPp: 1
})
}); // return fetch( 'https://typejoy.biz/pay/ppal_1025/EN/pay
}); // return actions.order.capture().then( function(details
} // onApprove: function(data, actions
}).render('#payPp');
} // window.onload = function() {
</script>
В консоли на стороне клинета я могу регистрировать orderID, но я не понимаю, как передать его на сторону сервера. Как работает функция выборки? я должен использовать другой тип функции? Как сделать это правильно?