Solved

Encountering error "Parameter specified as non-null is null" when attempting purchase

  • 11 January 2024
  • 1 reply
  • 125 views

Badge +3

Everything is configured correctly on RevenueCat and the app stores, and I’m able to fetch and display my offerings using `Purchases.getOfferings()`.

 

console.log(offerings.current.availablePackages);


LOG  [{"identifier": "pay_black", "offeringIdentifier": "default", "packageType": "CUSTOM", "product": {"currencyCode": "KRW", "defaultOption": null, "description": "Test1", "discounts": null, "identifier": "pay_black", "introPrice": null, "presentedOfferingIdentifier": "default", "price": 10000, "priceString": "₩10,000", "productCategory": "NON_SUBSCRIPTION", "productType": "CONSUMABLE", "subscriptionOptions": null, "subscriptionPeriod": null, "title": "Black"}}, {"identifier": "pay_blue", "offeringIdentifier": "default", "packageType": "CUSTOM", "product": {"currencyCode": "KRW", "defaultOption": null, "description": "Test2", "discounts": null, "identifier": "pay_blue", "introPrice": null, "presentedOfferingIdentifier": "default", "price": 30000, "priceString": "₩30,000", "productCategory": "NON_SUBSCRIPTION", "productType": "CONSUMABLE", "subscriptionOptions": null, "subscriptionPeriod": null, "title": "Blue"}}]

 

However, when I try to execute `Purchases.purchasePackage()`, I encounter the following error: “Parameter specified as non-null is null: method com.revenuecat.purchases.hybridcommon.CommonKt.purchasePackage, parameter packageIdentifier”

 

const { purchaserInfo, productIdentifier } = await Purchases.purchasePackage('pay_black');

 

A similar error occurs when I try to execute `Purchases.purchaseStoreProduct()`. The error suggests that I’m passing `null` as a parameter, but I’m definitely passing the correct identifier as a string.

 

Thanks in advance to anyone who can help me resolve this :)

icon

Best answer by eragon4445 16 January 2024, 11:42

View original

1 reply

Badge +1

Hi, this is because you shouldn't pass the ID as an argument to the purchasePackage() function, but the entire product. 

If you're using react native, it's best to do it like this: 

const [product, setproduct] = useState('')

setproduct(offerings.current.availablePackages[0].product)

Purchases.purchasePackage(product)

 

Hope this helps!

Reply