Compare commits
1 Commits
master
...
fix-paymen
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cae655af7e |
@@ -34,8 +34,11 @@ export async function onApprove(data, actions) {
|
|||||||
throw new Error(`${errorDetail.description} (${orderData.debug_id})`);
|
throw new Error(`${errorDetail.description} (${orderData.debug_id})`);
|
||||||
}
|
}
|
||||||
else if (!orderData.purchase_units) {
|
else if (!orderData.purchase_units) {
|
||||||
|
// Check if error was a server-side issue but PayPal confirmed payment
|
||||||
if (orderData.ERROR_TREATMENT) {
|
if (orderData.ERROR_TREATMENT) {
|
||||||
console.log("Capture result",orderData);
|
console.log("Capture result - Server processing error, but payment may be valid:",orderData);
|
||||||
|
// Display problem message - payment succeeded on PayPal but failed locally
|
||||||
|
// User stays on page to see the message
|
||||||
resultMessage(PLGNTLS_data.paypal_message_problem);
|
resultMessage(PLGNTLS_data.paypal_message_problem);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -48,15 +51,14 @@ export async function onApprove(data, actions) {
|
|||||||
const transaction =
|
const transaction =
|
||||||
orderData?.purchase_units?.[0]?.payments?.captures?.[0] ||
|
orderData?.purchase_units?.[0]?.payments?.captures?.[0] ||
|
||||||
orderData?.purchase_units?.[0]?.payments?.authorizations?.[0];
|
orderData?.purchase_units?.[0]?.payments?.authorizations?.[0];
|
||||||
console.log("Capture result",orderData);
|
console.log("Capture result - Success:",orderData);
|
||||||
resultMessage(PLGNTLS_data.paypal_message_success);
|
resultMessage(PLGNTLS_data.paypal_message_success);
|
||||||
actions.redirect(PLGNTLS_data.paypal_redirection_success);
|
actions.redirect(PLGNTLS_data.paypal_redirection_success);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
console.error(error);
|
console.error("Payment approval error:", error);
|
||||||
resultMessage(PLGNTLS_data.paypal_message_failure);
|
resultMessage(PLGNTLS_data.paypal_message_failure);
|
||||||
actions.redirect(PLGNTLS_data.paypal_redirection_failure);
|
actions.redirect(PLGNTLS_data.paypal_redirection_failure);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,10 +18,6 @@ function handle_orders_capture_request_CIPF($request) {
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ask paypal about the finished order
|
|
||||||
* update the client situation
|
|
||||||
* and return the response of paypal
|
|
||||||
*
|
|
||||||
* capture status : https://developer.paypal.com/docs/api/orders/v2/#definition-order_status
|
* capture status : https://developer.paypal.com/docs/api/orders/v2/#definition-order_status
|
||||||
* - COMPLETED
|
* - COMPLETED
|
||||||
* - DECLINED
|
* - DECLINED
|
||||||
@@ -32,11 +28,11 @@ function handle_orders_capture_request_CIPF($request) {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
try {
|
try {
|
||||||
$response_json = capture_order_cipf($order_id);
|
$response_json = capture_order_CIPF($order_id);
|
||||||
$http_status_code = $response_json['http_status_code'];
|
$http_status_code = $response_json['http_status_code'];
|
||||||
$json_response = $response_json['json_response'];
|
$json_response = $response_json['json_response'];
|
||||||
|
|
||||||
update_user_post_capture_CIPF($json_response, 'end');
|
update_user_post_capture_CIPF($json_response);
|
||||||
|
|
||||||
return new WP_REST_Response($json_response, $http_status_code);
|
return new WP_REST_Response($json_response, $http_status_code);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,8 +98,17 @@ function update_user_post_capture_CIPF($message) {
|
|||||||
if ($user_id_to_update === false) {
|
if ($user_id_to_update === false) {
|
||||||
throw new HttpException('cannot find user with this order_id', 502);
|
throw new HttpException('cannot find user with this order_id', 502);
|
||||||
}
|
}
|
||||||
if ($status === 'COMPLETED') {
|
/*
|
||||||
// proceed to validate payment for user
|
* PayPal capture status: https://developer.paypal.com/docs/api/orders/v2/#definition-order_status
|
||||||
|
* - COMPLETED: Payment captured successfully
|
||||||
|
* - PENDING: Payment authorized, awaiting capture (valid for some payment methods)
|
||||||
|
* - DECLINED: Payment was declined
|
||||||
|
* - PARTIALLY_REFUNDED: Order partially refunded
|
||||||
|
* - REFUNDED: Order fully refunded
|
||||||
|
* - FAILED: Order failed
|
||||||
|
*/
|
||||||
|
if ($status === 'COMPLETED' || $status === 'PENDING') {
|
||||||
|
// proceed to validate payment for user (both COMPLETED and PENDING are successful)
|
||||||
success_payment_for_user_CIPF($user_id_to_update, $order_id);
|
success_payment_for_user_CIPF($user_id_to_update, $order_id);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
Reference in New Issue
Block a user