Support wrote:
This is message we receive from PayPal:
"Hi Svetlana,
Thank you for your patience. From your API requests, we can see that your system is passing shipping addresses. One thing to note in addition to the shipping address is the experience_profile_id that is passed. For example, in the recent transaction ID *HIDDEN*791E, the experience_profile_id "XP-*HIDDEN*-2DA5" was passed.
experience_profile_id XP-*HIDDEN*-2DA5 dictates how the payment should be configured. In this case, the experience profile content is as follows:
{
"id": "XP-*HIDDEN*-2DA5",
"name": "26a878f1-256f-4052-8bbd-68b5dc436d1b",
"temporary": false,
"input_fields": {
"no_shipping": 1,
"address_override": 0
}
}
no_shipping=1
Redacts shipping address fields from the PayPal pages.
https://developer.paypal.com/docs/api/payment-experience/v1/#web-profile_update!path=input_fields/no_shipping&t=request
Setting no_shipping to 1 in the experience_profile_id is the reason the Shipping address has been removed from the transaction. This redacts the shipping address from the PayPal checkout and the transaction overall. It indicates that there is no shipping address needed for the transaction even if a shipping address was passed by the merchant.
To resolve the issue, your system needs to use an experience context id with no_shipping=0 which "Displays the shipping address on the PayPal pages." and address_override=1 which "Displays the shipping address specified in this call. the customer cannot edit this shipping address.
I apologize for the inconvenience this has caused. Thank you for using PayPal, and have a wonderful day!
Sincerely,
Matthew
Merchant Technical Support - Engineer
PayPal, Inc."
Hi,
We have problem, PayPal refuses provide us with seller protection because it requires providing buyer's shipping address.
"Payments without a shipping address are not covered by PayPal's seller protection policies and programs."
We have contacted PayPal about it, and showed them that in API call log we can see provided shipping address, but on transaction page it is not displayed. They did investigation and told us that the reason why it is not showing is because, the web experience profile has got following fields set incorrectly:
we have:
"input_fields": {
"no_shipping": 1,
"address_override": 0
}
and it should be:
"input_fields": {
"no_shipping": 1,
"address_override": 0
}
I have called https://api-m.paypal.com/v1/payment-experience/web-profiles
and yes we create new profile for each of transaction and fields set incorrect.
Can we ask FoxNetSoft team to fix it for us please? as we loosing disputes, because of this.
Best Regards D.
I can't the problem happens in rare cases, but when it happens customers are very unhappy and claiming that we trying steal they money, because money taken and order not created.
Support wrote:
Support wrote:
Support wrote:
Hi again,
I'm glad to see you fixed some of bugs since we last spoke.
But I have one more for you to squeeze.
So here is scenario:
1. POST /v1/payment_intents 200 OK
- PaymentIntent status: requires_confirmation
2. WEBHOOK payment_intent.created - NOT SENT AS PER CONFIG
3. POST /v1/payment_intents/pi_1IkAv.../confirm 200 OK
- PaymentIntent status: requires_action
4. WEBHOOK payment_intent.requires_action - NOT SENT AS PER CONFIG
5. POST /v1/payment_intents/pi_1IkA.../confirm 200 OK
- PaymentIntent status: succeeded
- 3D Secure succeeded
6. WEBHOOK charge.succeeded - NOT SENT AS PER CONFIG
7. WEBHOOK payment_intent.succeeded - SENT, BUT FAILS
So payment_intent.succeeded webhook fails, because it nopcommerce does not have order by order guid specified in webhook. So the there is no order, but money is charged.
Im not sure what workflow you have in your plugin setup, at which point do you create order? Because in my case order is not created, but money is charged.
Regards, Dmitri
Customer