[00:00:11] (PS1) Awight: Update DonationInterface [wikimedia/fundraising/crm/vendor] - https://gerrit.wikimedia.org/r/234443 [00:01:33] (PS1) Awight: Merge master into deployment [wikimedia/fundraising/crm] (deployment) - https://gerrit.wikimedia.org/r/234444 [00:01:56] (PS1) Awight: Update vendor submodule [wikimedia/fundraising/crm] (deployment) - https://gerrit.wikimedia.org/r/234445 [00:02:33] AndyRussG: That sounds pretty safe. You interested in doing that yourself, or shall I? [00:03:25] I guess the only consideration is that it doesn't buy us anything to do so now rather than Monday AM? [00:05:14] awight: that's true! yeah surely we won't be deploying to prod before then... [00:05:46] Just thought I'd check in to see when might be a good time :) [00:06:24] awight: I have never done a schema deploy... Do you want to do it over screen-share maybe? [00:07:21] I pasted the link to instructions, it's pretty e-z [00:07:54] https://wikitech.wikimedia.org/wiki/How_to_do_a_schema_change#sql.php [00:08:20] There are a few ways to do it, but I think this one is simple and appropriate [00:08:50] Bottom line is, never run update.php. The sql.php method just loads one SQL script at a time, like [00:09:07] mwscript sql.php --wiki=metawiki landing_pages.sql [00:09:14] from tin [00:12:17] AndyRussG: hey, I missed you with this news earlier today, in #wikimedia-ai: https://meta.wikimedia.org/wiki/Research:Revision_scoring_as_a_service/Clustering_in_reverted_edits [00:12:32] Apparently that means stuff [00:13:04] awight: ah cool! I'll try to comprehend :) [00:13:41] awight: wrt schema deploy, then maybe could I screenshare w/ u while I do it? [00:20:56] Fundraising Sprint Rowlf the Dog, Fundraising-Backlog, Unplanned-Sprint-Work: Fundraising vagrant role provisioning fails - https://phabricator.wikimedia.org/T108844#1582574 (awight) @Pcoombe: I think you might have the same thing as XenoRyet, T110260. You can diagnose it by doing `vagrant ssh`, then... [00:21:33] AndyRussG: sure, any time! [00:22:14] (CR) Awight: [C: 2] Update DonationInterface [wikimedia/fundraising/crm] - https://gerrit.wikimedia.org/r/234441 (owner: Awight) [00:22:22] awight: K thanks! R u around tomorrow? If so tomorrow we could set a time on Monday [00:22:29] (CR) Awight: [C: 2] Merge master into deployment [wikimedia/fundraising/crm] (deployment) - https://gerrit.wikimedia.org/r/234444 (owner: Awight) [00:22:59] (Merged) jenkins-bot: Update DonationInterface [wikimedia/fundraising/crm] - https://gerrit.wikimedia.org/r/234441 (owner: Awight) [00:23:01] (Merged) jenkins-bot: Merge master into deployment [wikimedia/fundraising/crm] (deployment) - https://gerrit.wikimedia.org/r/234444 (owner: Awight) [00:23:05] (CR) Awight: [C: 2] Update DonationInterface [wikimedia/fundraising/crm/vendor] - https://gerrit.wikimedia.org/r/234443 (owner: Awight) [00:23:34] (CR) Awight: [C: 2] Update vendor submodule [wikimedia/fundraising/crm] (deployment) - https://gerrit.wikimedia.org/r/234445 (owner: Awight) [00:23:47] (Merged) jenkins-bot: Update DonationInterface [wikimedia/fundraising/crm/vendor] - https://gerrit.wikimedia.org/r/234443 (owner: Awight) [00:23:49] (Merged) jenkins-bot: Update vendor submodule [wikimedia/fundraising/crm] (deployment) - https://gerrit.wikimedia.org/r/234445 (owner: Awight) [00:23:56] awight: Also just as soon as Ellery checks out the mysql data on labs, maybe we could talk to online to set a date for deploy to prod? Everything looks decent so far :) [00:24:28] awight: BTW also I'm expecting one more follow-on patch for some minor API tweaks needed by existing banner scriptz [00:24:50] AndyRussG: I'm not working tomorrow, also it's better to avoid Friday deployments unless it's a bugfix or other emergency. [00:25:08] OK, I'll keep my eye out for more code review [00:25:20] awight: yeah no I was thinking of just whether we could use tomorrow to set a time for Monday or later next week... [00:25:38] awight: I'm doubtful about being able to make a refund automater by tomorrow, and I feel like we should get the stuff refunded and emails out ASAP to look as competent as possible. I'll take a stab at automating tomorrow morning, but might take MBeat up on his offer to do the refunds too. [00:27:54] Maybe if we both focus on it? [00:28:07] Lemme write the API and try it on one of my donations... [00:28:55] You think it'll be pretty straightforward? [00:29:21] It'll be the same thing as the Recurring_Charge integration, methinks [00:32:35] So a DO_REFUND and a SET_REFUND? [00:33:42] ejegg: That's what it looks like to me, too. Are these all GC CC? [00:33:52] or wait, AstroPay? [00:34:01] All but 1 paypal. OK, looks like it's not too bad. We just need gateway_txn_id, the original merchantreference, and [00:34:13] amount / currency [00:34:42] oh, and paymentproductid [00:34:52] yeah that part is nasty. Too bad the log parser is on cinderblocks [00:36:02] Semiautomated is okay for now--we'll build the CSV of refund info in mysql, then run the refund script on that [00:36:26] family is shouting about something blackberry related, brb if you're still working [00:44:36] awight|afk: ugh, we don't record our random ctid suffix anywhere but the logs... [01:35:01] awight|afk: got a csv parsed out of the logs, defining txn structure and doing a little override for merchantreference [02:01:32] (PS1) Ejegg: WIP GlobalCollect refund API [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234459 [02:04:19] awight|afk: want to let me know if that looks like it's on the right track? [02:04:39] hmm, maybe that should be 'doRefund' and return a PaymentResult [02:10:45] (PS2) Ejegg: WIP GlobalCollect refund API [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234459 [02:58:55] (PS3) Ejegg: WIP GlobalCollect refund API [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234459 [05:57:32] (PS4) Ejegg: WIP GlobalCollect refund API [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234459 [06:00:48] Fundraising Tech Backlog, Fundraising-Backlog, MediaWiki-extensions-DonationInterface: Order ID leak in the orphan slayer - https://phabricator.wikimedia.org/T110639#1582955 (awight) NEW [06:05:11] did that just happen... [06:56:21] (PS1) Awight: Correct typos [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234470 [07:10:22] TCB-Team-Fundraising-Sprint-2015-07-29, TCB-Team-Fundraising-Sprint-2015-08-05, TCB-Team-Fundraising-Sprint-2015-08-12, TCB-Team: [WMDE-Fundraising] Create diagram of fundraising components - https://phabricator.wikimedia.org/T107277#1583017 (WMDE-Fisch) Open>Resolved [07:12:01] TCB-Team-Fundraising-Sprint-2015-08-12, TCB-Team: [WMDE-Fundraising] Analyse: Mobile visitors during the last campaign - https://phabricator.wikimedia.org/T108815#1583022 (WMDE-Fisch) Open>Resolved [07:13:03] TCB-Team-Fundraising-Sprint-2015-08-26, TCB-Team: [WMDE-Fundraising] Explanation of new Central Notice Features - https://phabricator.wikimedia.org/T110321#1583041 (WMDE-Fisch) Open>Resolved [07:39:58] Fundraising Sprint Rowlf the Dog, Fundraising-Backlog, Recurring-Donations, Patch-For-Review: GC error causing donors to create multiple recurring donations - https://phabricator.wikimedia.org/T110367#1583089 (awight) We'll have to cancel the subscriptions, too. [07:47:34] (PS1) Awight: Tweak the cancel/refund logic [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234474 (https://phabricator.wikimedia.org/T110367) [07:59:56] (PS1) Awight: Cancel subscriptions programatically [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234476 (https://phabricator.wikimedia.org/T110367) [08:02:07] Fundraising Sprint Rowlf the Dog, Fundraising-Backlog, Recurring-Donations, Patch-For-Review: GC error causing donors to create multiple recurring donations - https://phabricator.wikimedia.org/T110367#1583118 (awight) I've smoke tested the branch head, it seems to do the job! Time to mail ourselve... [08:04:24] (CR) Awight: "Edge case stuff... please see my patches that come after this." (3 comments) [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234459 (owner: Ejegg) [08:05:27] (CR) Awight: WIP GlobalCollect refund API (4 comments) [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234459 (owner: Ejegg) [08:06:09] (CR) Awight: [C: 1] "Fantastic! I would merge, but maybe squash with some of the fixup patches first." [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234459 (owner: Ejegg) [13:37:21] TCB-Team-Fundraising-Sprint-2015-08-26, TCB-Team: [WMDE-Fundraising] Determine current tracking waypoints and identify missing ones - https://phabricator.wikimedia.org/T110318#1583994 (Tobi_WMDE_SW) [13:37:39] TCB-Team-Fundraising-Sprint-2015-08-26, TCB-Team: [WMDE-Fundraising] Determine current tracking waypoints and identify missing ones - https://phabricator.wikimedia.org/T110318#1574883 (Tobi_WMDE_SW) [13:56:18] Fundraising Sprint Rowlf the Dog, Fundraising-Backlog, Unplanned-Sprint-Work: Fundraising vagrant role provisioning fails - https://phabricator.wikimedia.org/T108844#1584063 (Pcoombe) Open>Resolved a:Pcoombe My folder was owned by 'vagrant_share' rather than 'ubuntu'. Turning NFS shares off s... [14:04:12] TCB-Team-Fundraising-Sprint-2015-08-26, TCB-Team: [WMDE-Fundraising] BE: member-view in analyzation-section - https://phabricator.wikimedia.org/T104435#1416842 (WMDE-leszek) Patch on github: https://github.com/wmde/fundraising-backend/pull/137 [15:31:11] !log updated crm from fc0fcc8f5af262b56392d3f4f5998f8ea08c99a8 to 0fc8474338e7a31fdde79287bd667b98cd96a252 [15:31:18] Logged the message at https://wikitech.wikimedia.org/wiki/Server_Admin_Log, Master [15:36:28] FYI: I'm testing the recurring globalcollect module, may result in a failmail [15:37:27] done. [15:37:49] awight: heh what are you doing working eh? ;) [15:38:12] * AndyRussG is happy to see awight, not meaning to seem otherwise! :) [15:38:53] awight: thanks for the refund fixes! Just trying to test locally a bit [15:40:17] Fundraising Sprint Rowlf the Dog, Fundraising Tech Backlog, Fundraising-Backlog, Wikimedia-Fundraising-CiviCRM, and 3 others: Make GlobalCollect recurring processing more robust, handle stale status 600s - https://phabricator.wikimedia.org/T110264#1584362 (awight) I just successfully smoke tested... [15:40:38] ejegg: awesome! [15:41:02] I realized I'd left some stuff on the CRM deployment branch last night, just finishing pushing it out now. [15:43:02] AndyRussG: Thank you for the union card check :D [15:44:31] (CR) Awight: [C: 2] Amazon code cleanup [extensions/DonationInterface] (amazon) - https://gerrit.wikimedia.org/r/234156 (owner: Ejegg) [15:45:02] (Merged) jenkins-bot: Amazon code cleanup [extensions/DonationInterface] (amazon) - https://gerrit.wikimedia.org/r/234156 (owner: Ejegg) [15:45:54] ejegg: Crazy elf behavior... I promised to make a tiny pair of shoes for you, stepped away from the computer for a minute, and when I came back it was all done already! [15:46:26] awight: damn, I'm getting 'paymentattempt not found' for the cancel, and 'not within refundable period' for the do_refund, both for my own test donation this morning and for one of the ones we need to cancel from last week [15:46:35] I'm starting to suspect "don't do this work" is the strongest possible motivator [15:46:42] did you see those? [15:46:53] ejegg: interesting; I got lots of interesting errors but not those [15:47:17] are you hitting the test URL? That would account for not being able to see the real donations. [15:47:30] possibly explains the failure on your test donation, also [15:47:37] hmmm, don't think so [15:47:41] * awight marvels at own repeated words [15:49:13] nah, hitting the real url [15:49:25] did you set effortid=1 in your csv? [15:49:38] or leave that blank? [15:50:12] for recurring, you should set the effort_id, otherwise -1 or 1 work [15:50:18] I think -1 is the recommendation [15:51:06] I'm gonna do real life for a minute, please do keep me posted though [15:51:08] hmm, ok [15:51:15] enjoy RL! [15:52:55] pretty strange to hear, I had a lot of success hitting the .nl site, I was able to cancel and refund charges, and cancel the subscription [15:58:01] maybe try .nl to see if the basic thing works? It's possible we need to configure something on production to allow this, although the errors don't sound right [15:58:33] yeah, I am hitting .nl - copied that out of production [16:02:06] the get_orderstatus should happen regardless of the cancel and refund--what does it return? [16:02:17] order not found [16:02:33] oh, let me try changing effort to -1 for my non-recurring [16:04:44] are you totally sure you created these orders on the .nl site? Sorry to be pedantic [16:05:27] Yeah, I did my donation in prod, then copied the URL and merchant ID to my local and am going through the office VPN [16:05:47] ah ha [16:06:08] it's a sandbox, you have to make the charge from your local box to the .nl site for it to exist [16:06:37] Wait, anything coming through the office VPN is routed to a sandbox? [16:07:13] no, anything that hits .nl is though [16:07:25] so you can't see production orders from the sandbox [16:07:48] heh, so our cluster is currently pointing to the sandbox? [16:08:42] wat. [16:09:02] .com vs .nl [16:09:11] * awight|trastres eyebrow shoots up [16:09:28] oh hell, I was going by the p3p header on the response in the logs [16:09:57] I guess responses coming back from .com point to a privacy policy on .nl [16:10:06] thanks! [16:10:20] yeah, all good: grep gcsip /srv/www*/org/wikimedia/payments/*LocalSettings*php [16:10:25] that was a scary moment [16:10:40] sorry for the blood pressure spike [16:10:41] I have nightmares aboot that [16:11:23] i knew a lifetime of white, suburban punkhood would lead to this, but still I blame society for forcing me into this job [16:11:35] hrmm /me queues Repo Man for another viewing [16:11:42] hehe [16:19:34] ah drat, effort_id is getting clobbered in setGatewayDefaults [16:20:28] good catch! I hadn't gone beyond 1 [16:25:46] OK, that worked on mine! I had to set the effort id back to 1, as -1 was telling me the paymentattempt wasn't found. [16:26:54] WOOT [16:27:05] * awight|trastres disappears further in to the nether reaches of the real world [16:27:17] yay! Trying with one of the real recurring duplicates now [16:29:14] This is big... [16:29:42] MBeat: might want to take the foil off yr champagne [16:30:31] Darn, now it's telling me 'refund amount too large' when it totally matches the amount on the initial charge [16:30:59] MBeat: you haven't started refunding any of those GC transactions, have you? [16:32:03] um, actually... [16:32:21] we’ve done 10 so far [16:32:30] Oh, that probably explains it! [16:32:43] want the ID #s? [16:32:45] I think we can blast through the rest [16:32:49] cool! [16:32:50] Sure, that would be great! [16:33:09] Well, we can do all except for that Paypal one [16:35:11] 1851766626 [16:35:12] 1207732082 [16:35:14] 5937424973 [16:35:15] 8201566034 [16:35:17] 3459798588 [16:35:18] 998434993 [16:35:20] 7916101528 [16:35:21] 1269119915 [16:35:22] 760601649 [16:35:23] 4462010282 [16:35:24] are the refunds we processed, ejegg [16:36:04] thanks! I was testing with that last one, so it makes perfect sense they were telling me I was trying to refund too much [16:36:15] I'll strike those from my list and try a fresh one [16:36:38] Could you please refund the one Paypal donation via your usual method? [16:43:02] sure thing [16:51:43] * awight|trastres dances on one foot [16:51:47] ok, good luck [16:52:21] MBeat: I got an odd status (1050: Collected) after trying to refund one of those recurring duplicates. Can you please check what 2535331609 looks like in the GC console? [16:55:42] elegg, 2535331609 has been refunded manually [16:55:48] *ejegg [16:56:08] Oh, OK, I'll try another one [17:00:11] of the ones we refunded, we left the first transactions in place at GC and refunded the successive donations, hope that’s not complicating things [17:00:47] No, that should be fine! [17:00:51] Thanks again [17:04:36] MBeat: how about 2422710353 ? It's also saying 'Collected' and not showing any refunded amount in my get_orderstatus call, even though my do_refund call didn't show any errors. [17:06:03] sorry, let me see if I have credentials for the console somewhere [17:06:07] sorry, ejegg, that’s refunded too [17:06:37] Hmm, OK, let's look at the next one before I make any API calls. [17:06:46] 6904276886 ? [17:12:43] not refunded; in this case we asked the donor a few days ago if they’d like a refund. want to try a different one? [17:13:40] sure, let me look at the bottom of the list [17:13:55] 1839600863 ? [17:19:46] (PS1) Cdentinger: WIP optional address fields for mustache [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234579 [17:19:53] ejegg, this donor reached out to us already! [17:26:36] MBeat: oh shoot, I only filtered out transactions that were marked refunded in Civi. I guess I need tocross reference with your list of contacted donors [17:27:28] If you can get me the email addresses of everyone who's taken care of, I'll winnow out those CSVs I exported yesterday [17:28:05] ok, give me a bit to make a list of refunds we’ve done already in Zendesk (in addition to the list I sent before) [17:29:44] thanks! [17:32:24] ejegg, these are the dupes we’ve refunded the past week (some may have been donor errors rather than this error): [17:36:11] ejegg: do you think i should un-generalize the mustache stylesheets in addition to the js? [17:36:46] cwdent: Nah, I think those can stay. Easier to override CSS! [17:36:52] I emailed you this list of refunded dupes [17:37:21] ejegg: sounds good! i'll mess with this and push something up later for you to look at [17:37:49] thanks MBeat! I'll find something that actually needs refunding and we can take at look at the console status before and after the automated thing tries to refund it [17:38:04] cool, many thanks [17:38:42] It'll be great to have this batch thing solid. Hopefully we can make an interface for it in Civi some day [17:46:54] (PS1) Cdentinger: WIP de-centralize mustache js [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234584 [19:33:57] ejegg: been messing with the mustache index page and wondering why i can't see the continue button (even though it's in the markup) and then i looked at live and realize i can't see it there either: https://payments.wikimedia.org/index.php?title=Special:AstropayGateway [19:34:24] guessing it's a l10n thing? [19:35:00] cwdent: oh, that doesn't show up till the user selects a card type, and then only if they haven't filled in the rest of the form yet. [19:35:39] oh ok...and i don't see card types because of my locale? [19:38:46] ooh, that might be it! [19:38:51] hmm, not so friendly [19:38:57] try country=BR [19:39:03] and currency_code=BRL [19:40:28] hmm i can't get em to show up, but i'll figure out what's going on, just making sure it wasn't something stupid obvious! [19:42:14] must be my local settings that getAvailableSubmethods is checking [20:03:56] MBeat: whew, there are a lot of special cases to consider! I think I've got it figured out, but I'm sure we're cleaning up recurring orders all the way. I can request a refund the first payment, but it doesn't let me cancel the whole order, maybe because the refund is still underway? When you cancel a bad recurring donation, do you issue a refund for the first payment then come back later to cancel the whole thing? [20:04:54] we cancel the recurring function from Civi, and refund the first payment [20:05:17] there isn’t a way afaik to cancel the recurring function from GC [20:05:43] oh, i see! [20:05:49] usually the refund + Civi cancel is enough [20:06:47] OK, cool. I guess I'm only automating the refund part then. [20:07:32] MBeat: I took the txns you sent off of the list, along with anything else from the same donors ( I figure you already worked out which to keep). [20:07:46] thanks [20:08:03] Can I go ahead and run through the rest of them? Do you want an updated list to look at first? [20:09:19] the one thing I am curious is if the refunds will all be for donations made after the intial donations? are you sorting by most recent? it would help us sort things out if that were consistent [20:09:52] yes, I'm leaving the first one there and refunding ones made after that by the same person [20:17:05] awesome, thanks [20:17:18] woohoo, here goes! [20:17:22] feel free to run - yay [20:39:25] MBeat: OK, got 'em refunded! I'll do another export of the ones from the list that are now canceled, either by the script or that were already that way [20:39:39] great, thank you! [20:53:13] MBeat: OK, there's a new CSV in the DS folder with just the refunded/canceled ones from the other lists, and not including the txns you told me you dealt with earlier. [20:53:55] you rock! thank you [20:54:13] Thank you so much for handling the communication! [20:54:26] np [21:01:01] (PS1) Ejegg: More refund logic tweaks [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234672 (https://phabricator.wikimedia.org/T110367) [21:05:12] fundraising-tech-ops: build libcidr package for Trusty - https://phabricator.wikimedia.org/T110740#1585589 (Jgreen) NEW a:Jgreen [21:06:13] fundraising-tech-ops, operations: package udp-filter for Trusty, for use on fundraising banner_logger - https://phabricator.wikimedia.org/T110592#1585598 (Jgreen) [21:06:15] fundraising-tech-ops: build libcidr package for Trusty - https://phabricator.wikimedia.org/T110740#1585599 (Jgreen) [21:11:10] ejegg: i'm confused, do you know off the top of your head why the WP form adds all these hidden inputs before the api call? it looks like the same values from the postdata but with different keys that might map to the xml doc? [21:12:16] Huh, maybe WP expects those to be in the browser post too? [21:12:42] doesn't the first one hit api.php and proxy from there? [21:15:18] The call to api.php does clientside validation and gets a one time token + processing URL back [21:16:08] fundraising-tech-ops: build libcidr package for Trusty - https://phabricator.wikimedia.org/T110740#1585630 (Jgreen) p:Triage>Normal [21:16:42] fundraising-tech-ops, operations: package udp-filter for Trusty, for use on fundraising banner_logger - https://phabricator.wikimedia.org/T110592#1585632 (Jgreen) p:Triage>Normal [21:16:56] as soon as it comes back, it sets the form's action to a URL on worldpay's site, adds cleaned-up data from inputs to hidden fields with the right names for WP, and submits the form to WP [21:17:29] So those hidden inputs only get submitted to worldpay [21:17:41] oooh, that makes sense [21:18:08] in this case instead of submitting we'll just want to pop open the iframe? [21:18:28] yep! [21:26:17] fundraising-tech-ops, operations: reformulate kafkatee package to work with Trusty - https://phabricator.wikimedia.org/T110591#1585651 (Jgreen) [21:26:38] (CR) Ejegg: "CANCEL_ORDER doesn't seem to work for orders where one of the payment attempts has gone anywhere - only those in statuses Open / Waiting f" [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234476 (https://phabricator.wikimedia.org/T110367) (owner: Awight) [21:32:26] Fundraising Sprint Rowlf the Dog, Fundraising-Backlog, Recurring-Donations, Patch-For-Review: GC error causing donors to create multiple recurring donations - https://phabricator.wikimedia.org/T110367#1585661 (Ejegg) [22:32:11] (PS2) Ejegg: More refund logic tweaks [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234672 (https://phabricator.wikimedia.org/T110367) [23:14:09] (PS1) Cdentinger: WIP worldpay ESOP [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234691 [23:14:32] (CR) jenkins-bot: [V: -1] WIP worldpay ESOP [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234691 (owner: Cdentinger) [23:17:21] (PS2) Ejegg: Correct typos [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234470 (owner: Awight) [23:17:23] (PS3) Ejegg: More refund logic tweaks [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234672 (https://phabricator.wikimedia.org/T110367) [23:17:26] (PS2) Ejegg: Tweak the cancel/refund logic [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234474 (https://phabricator.wikimedia.org/T110367) (owner: Awight) [23:17:27] (PS5) Ejegg: GlobalCollect refund API [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234459 (https://phabricator.wikimedia.org/T110367) [23:17:29] (PS2) Ejegg: Cancel subscriptions programatically [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234476 (https://phabricator.wikimedia.org/T110367) (owner: Awight) [23:19:46] (CR) Cdentinger: WIP worldpay ESOP (3 comments) [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234691 (owner: Cdentinger) [23:20:07] ^ some initial flailing [23:20:17] ok, home depot time! [23:23:21] (CR) Ejegg: "We should make this a distinct operation from refunding the payments. Unless the payment attempt is nipped in the bud fast enough to be c" [extensions/DonationInterface] - https://gerrit.wikimedia.org/r/234476 (https://phabricator.wikimedia.org/T110367) (owner: Awight) [23:59:23] (CR) Aaron Schulz: "The key thing to review for is any code path that does DB changes on GET requests (which violates the HTTP idea of GET idempotence anyway)" [extensions/CentralNotice] - https://gerrit.wikimedia.org/r/234164 (https://phabricator.wikimedia.org/T92357) (owner: Aaron Schulz)