Recently a customer filed a bank-reversal to a purchase. The purchase was 100 dollars. However the reversal triggered three IPN requests:
Day 1:
IPN 1:
mc_gross=-96.80
mc_fee=-3.20
payment_status=Reversed
reason_code=buyer_complaint
Day 2:
IPN 2:
reason_code=unauthorized_spoof
payment_status=Reversed
mc_fee=-3.20
mc_gross=-100.00
IPN 3:
reason_code=buyer_complaint
payment_status=Canceled_Reversal
mc_fee=3.20
mc_gross=96.80
For all three IPNs, the txn_type is nil.
Why would one reversal generate thee IPNs? Which one should be used to do clean up on my end? Would there always be three of them?
I think using mc_gross to find the IPN which matches with original amount is not a good idea, because sometimes there are currency conversion losses.
Related
From the magento admin whenever I try to make the payment with zero subtotal and shipping charges then it shows this error:
Field format error: 10413-The totals of the cart item amounts do not match order amounts
I need the solution to fix this.
PayPal does not process payments for zero amounts. You need to activate a zero amount payment method if you wish to be able to process such "transactions".
If the total amount is not zero, then the error indicates the various subamounts and amounts of items specified do not add up to the total correctly, which PayPal also cannot process.
I have here a Websphere commerce 7 Fp 5 Aurora B2B which is using Orgs, contracts and price lists maximum order quantity that we limit each "Store" Org to buy 3 each so that there is enough to go around. We have 3 sets of entitlements to that most guys Max is 3, better stores max is 5 and a few really good ones max qty is 10.
So we don't have to worry about allocation, these rules let every store buy based on their entitlement. When they try to put more in the cart then they should, they get a message "You are requesting to order more than your allocation limit. Please change your requested quantity." I don't know where this comes from.
Some users buy for 5 or more stores which is selected at checkout during payment. This keeps those store owners from having to have a bunch of log ins to keep track of.
We recently openned up Order Management, we call it multi-cart because this enables a store owner to create more than 1 cart by going to order management and create a new order. This makes it much easier for our store owners to manage what they are buying and paying and receiving with out having to call and email our CSR teams.
But now we noticed that some stores are taking advantage of the Multi-cart to buy more that the MAX qty they are allowed. It wouldn't be so bad, but they are buying all the 1 per customer stuff and all the other stores are calling and complaining because they didn't get their share. It really isn't fair.
I was thinking of all the different places to add a SQL check of order history and pending orders. Here is what I cam up with.
ATP - Inventory check
Pro- best place since customer, sku, entitlement, and everything else pretty much happens here. It is right up front.
Con- It doens't have ship-to, so the guys with more than 1 store need to be added as an exception leading sloppy business logic that could change regularly
OrderItemAddCmdImpl and overloading ExtendOrderItemProcessCmd
Pro - Bring ship-to selection up to the front and control everything here.
Con - Not certain overhead will like it.
At checkout
Pro - this also will have everything
Con - I kind of want to reserve this for all payment handling. It is a little dirty to read throught the order lines and to kick back error with SKU.
Have the ERP handle the exception-
Con - I realized we are setup that all Orders ship complete, we would have to change this and don't really want to because there are additional credit card penalties for charges less then amount held on credit.
So, the questions are what are your thoughts on additional pros and cons?
Are there other places that I'm missing that would make more sense?
We might need to create a new CommandTask and then append it to all existing flows.
OR
As the WebSphere Commerce team to build this new logic into the next release of WebSphere Commerce.
So, for this scenario the answer was creating a JDBC Query that will be called when items are added to cart that sums the Qty by sku of pending orders.
When orderitems are added to the cart, the query will return the item in error if exceeded and not add item.
The query will again run at checkout if all orderitems being paid for exceed total qty max by SKU by shipping address on payment page allowing chance for customer to change billing address if we are limiting item max qty by shipping address.
I want to make a Paypal button for buy 1 year, get 6 months free
It's rather easy to setup a free trial period, but in that case the first billing doesn't hit until the trial period is finished. That sucks.
We want to run a promotion where the free trial period comes at the END. So they pay for a full year today, and aren't billed again for another 18 months, at which point they are billed for another year of service, and the yearly billing cycle continues from there.
Billing for the trial period of 18 months won't solve my problem because there are 3 different checkout options and the trial period applies to all of them as a whole (they are different prices).
We have 3 subscription types, and 3 promotions. So it seems like I have to make 9 different buttons to solve my problem?? How can it be done a better way?
Solved this. I just had to make a separate buttons for each. For example:
I wanted the first subscription type to pay 1 year, get 6 months free.... In Paypal I selected yearly billing for X dollars, then chose an 18 months promotion (and the cost of the promotion was set to the same cost as the regular yearly billing).
This way, we get paid from the first second, the customer still gets their "free trial" which I guess isn't technically a free trial. It's more like a 50% discount for the first 1.5 years.
I'm trying to setup woocommerce subscriptions so that all paypal standard payments fall on the same day by using the free trial feature.
But the problem I'm having is changing the text when this feature is used so the customer doesn't get confused.
At the moment on the product page is says "£24.95 / month with a 2-day free trial" when ideally it needs to say "£24.95 / month starting in 2 days" or similar
In the cart is says "A 2-day free trial then £24.95 / month" when I would like it to say "A £24.95 / month starting in 2 days" or similar
And lastly when the customer gets taken to PayPal's secure servers is says under terms "Free for the first 2 days. Then £24.95 GBP for each month" when I would like this changed to "£24.95 GBP for each month starting in 2 days time" or similar
Would anyone know if there are any filter hooks I can use to get the desired effect, or if there is anything else I can do?
The site only has one product so I hope it's going to be straight forward.
Thanks in advance.
The 'woocommerce_subscriptions_product_price_string' filter can be used to customise the price displayed for a product.
The 'woocommerce_subscription_price_string' filter can be used to customise the cart/order prices displayed in the cart and on an order.
For examples of how to build your price strings and details of the parameters passed to each filter, view the source of the WC_Subscriptions_Product::get_price_string() and WC_Subscriptions_Manager::get_subscription_price_string() functions. I always try to write self-documenting code & include PHPDoc for anything that is not self evident.
Hope that helps. :)
When i try to buy a product for first time from iphone sandbox environment (i.e product com.abc) then i m able to get the proper response, and if i try to buy this product again then the transaction failed method is called, i dont know what to do.
And when i try to restore the product(i.e com.abc), a restore method is called multiple times, and when i print the product id then i m getting 5 to 6 times of printing of product id (i.e com.abc) that means 5 to 6 times my restore method is called.
If anybody have the solution of above 2 problems then please help me.
Thanks In Advance
NOTE: com.abc product is auto-renewable.
here is actually how much time period you keep(1 year or 6months) based on the time period your subscription is valid
if you keep 1 year the subscription is valid up to 1hour and verify this link after one hour you will get the normal transaction