Coder Social home page Coder Social logo

Comments (5)

selcukbeyhan avatar selcukbeyhan commented on June 29, 2024

Do you want to retrieve the user's receipt and store in your own system?

from cordova-plugin-purchase.

reinos avatar reinos commented on June 29, 2024

Yes I need the user's receipt, it is required for our payment provider that needs to store it. So I have to retrieve and send it to our payment provider (chargebee).

from cordova-plugin-purchase.

selcukbeyhan avatar selcukbeyhan commented on June 29, 2024

Hi, if the payment via Apple is done, processed and documented with a receipt, I cannot think of a usecase what the other payment provider would do with Apple's receipt.
Could there be a misunderstanding about the payment providers processes and requirements?

Otherwise, the API of Store object could be helpful to access to the receipts:
https://github.com/j3k0/cordova-plugin-purchase/blob/v13/api/classes/CdvPurchase.Store.md

from cordova-plugin-purchase.

reinos avatar reinos commented on June 29, 2024

Chargee (our payment provider) is just syncing the data.

Small intro about this; we use chargebee to see if a subscription is active or not, or what plan the user is using. Based on that plan we give the user extra features or not.

Because the app was first only created for web, this approach is working fine. However, we also created a Mobile app, using capacitor, but it is rejected by apple because we don't use In App Purchases.

But by using In App Purchases it creates a second source of truth for our subscriptions. Fortunately Chargebee has a syncing method where it can sync those subscriptions from Apple to Chargebee. So we can still using Chargebee as our source of truth.
However, new subscriptions are not created initially, so we have to push/create a new subscription manually via an Chargebee endpoint and that requires the AppStoreReceipt

# Create an In app subscription for Apple App Store
curl  https://{site}.chargebee.com/api/v2/in_app_subscriptions/cb-pjp7hcmrcbfmtjhle3smlwicu4/process_purchase_command \
     -u {site_api_key}:\
     -d receipt="Apple Based64 Encoded Receipt" \
     -d product[id]="app_store_plan_id" \
     -d product[price]="3399" \
     -d product[price_in_decimal]="33.99" \
     -d product[currency_code]="USD" 
     -d customer[id]="customer-123"

I will have a look at https://github.com/j3k0/cordova-plugin-purchase/blob/v13/api/classes/CdvPurchase.Store.md

Thanks!

from cordova-plugin-purchase.

selcukbeyhan avatar selcukbeyhan commented on June 29, 2024

If I am not wrong, what you could do is:
a) when there is a purchase performed on the mobile app, you could use a listener to listen the receipt updates and push to your backend where you also validate the receipt. Then you make a call to chargebee
b) when there is a purchase performed on the mobile app, you could use a listener to listen the receipt updates and push to chargebee directly. I dont know whether they have receipt validation functionality. Otherwise, you could face issues with fake receipts.

I still have difficulty to understand the receipt lifecycle on the app (when it is issued, what does it contain and how it is validated)

from cordova-plugin-purchase.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.