Hi @Mark. Is there a technical reason why the Buy Button can’t use GDE columns (template, join, math, etc.)?
I’d love a template column to fill the Item Name field, and a Math Column to fill the price field. The only field that accepts GDE columns is the Description field, but that field, for whatever reason, doesn’t get passed to the sheet upon submission (can it?).
“ Buy Button columns must be basic data columns for security reasons for now. We want to allow computed columns but we must make it possible for the server that verifies the purchases to run the calculations—right now our servers cannot run calculations, only your running app on a device can.”
I’m guessing part of the issue is that glide columns are most likely calculated on each individual device and not on the server. That’s probably where the security issue comes into play. The stripe interaction probably needs to happen on the server, and if the data is technically not being calculated on the server, then it’s not accessible when passing api credentials and data from the glide servers to the stripe servers. Opening up to allow each device to make direct connections to stripe probably opens up a whole lot of of security issues that would no longer be controlled under Glide’s servers and security. Just my guess.
without fully understanding Glide’s backend architecture…I’m trying to understand what the limitations are…
I can’t see the “buy button columns must be basic for security reasons” be honoured when the App: Sales sheet is clone by just about everyone that uses the buy button in order to access it in the Glide builder, which is then more than likely used used in inline lists etc which the data is downloaded to the user’s device and accessible by just about anyone.
Assuming that Glide has followed Stripe’s recommended implementation by by-passing Glide’s servers in order to turn the Credit Card info into a Stripe token, the only other bits of information you need in order to process a one-time payment with Stripe’s charge object are: amount, description, email and idempotencyKey (to confirm that the transction was successfully processed by stripe) which all can be generated from any source, server or device. All this can then be written back to Google sheets.