{"__v":8,"_id":"570a59ed7e20d42200255e96","category":{"project":"56abbf55f25f160d00e17f4e","version":"56abbf55f25f160d00e17f51","_id":"570a5676ade45d0e00c1ad33","__v":0,"sync":{"url":"","isSync":false},"reference":true,"createdAt":"2016-04-10T13:34:46.864Z","from_sync":false,"order":3,"slug":"client-side-api","title":"Client Side API"},"parentDoc":null,"project":"56abbf55f25f160d00e17f4e","user":"56abbec30b9e0b0d00616274","version":{"__v":12,"_id":"56abbf55f25f160d00e17f51","project":"56abbf55f25f160d00e17f4e","createdAt":"2016-01-29T19:36:53.665Z","releaseDate":"2016-01-29T19:36:53.665Z","categories":["56abbf56f25f160d00e17f52","56abca6bf9757e0d007c6650","56acddfa0ab3c00d00ce3332","56af65da9d32e30d0006d30f","56af66cab34d210d003d9ad0","56af6afcd21e9c0d00b628d1","56af6d6ecc4cbd0d00ce2c88","5705b12221cfed0e00e8c580","570a5676ade45d0e00c1ad33","570d7d25d1e4b82000d9e385","570eac3c3160d10e0041df0e","575709000fd6a3200010dded"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1.0"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-04-10T13:49:33.337Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":true,"order":8,"body":"## Requesting Item Purchase\n\nYou may bring up the \"purchase items\" dialog box by using the `purchaseItems` method on the `mtx` property on the Kongregate API object. It takes either an array of item identifiers or an array of identifier/metadata objects, as well as a callback function which should be called with the result of the purchase:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Name\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"`items`\",\n    \"0-1\": \"Array\",\n    \"0-2\": \"Array of item identifier strings, or an array of objects each with a `name` and `data` field.\",\n    \"1-0\": \"`callback`\",\n    \"1-1\": \"Function\",\n    \"1-2\": \"A callback function for when the purchase dialog is closed.\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\nThe callback function is passed an object with the following fields:\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"`success`\",\n    \"0-1\": \"Boolean\",\n    \"0-2\": \"A flag indicating whether or not the purchase was successful.\",\n    \"h-0\": \"Name\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\"\n  },\n  \"cols\": 3,\n  \"rows\": 1\n}\n[/block]\n**Example:** Purchasing a single item with identifier \"sword\":\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"kongregate.mtx.purchaseItems([\\\"sword\\\"], onPurchaseResult);\\n\\nfunction onPurchaseResult(result:Object):void {\\n  trace(\\\"Purchase success:\\\" + result.success);\\n}\",\n      \"language\": \"haxe\",\n      \"name\": \"ActionScript 3\"\n    },\n    {\n      \"code\": \"kongregate.mtx.purchaseItems([\\\"sword\\\"], onPurchaseResult);\\n\\nfunction onPurchaseResult(result) {\\n  console.log(\\\"Purchase success:\\\" + result.success);\\n}\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\n### Metadata\n\nYou can attach a metadata string to the item instance if needed which can be retrieved from the server later. It is important to note that the client can change this data using a browser plugin fairly easily, so it is a good idea to obfuscate this string, as well as verify its validity as it relates to your game.\n\n**Example:** Purchasing an item with metadata attached:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"var items:Array = [{identifier:\\\"sword\\\", data:\\\"+1str\\\"}];\\nkongregate.mtx.purchaseItems(items, onPurchaseResult);\\n\\nfunction onPurchaseResult(result:Object):void {\\n  trace(\\\"Purchase success:\\\" + result.success);\\n}\",\n      \"language\": \"haxe\",\n      \"name\": \"ActionScript 3\"\n    },\n    {\n      \"code\": \"var items = [{identifier:\\\"sword\\\", data:\\\"+1str\\\"}];\\nkongregate.mtx.purchaseItems(items, onPurchaseResult);\\n\\nfunction onPurchaseResult(result) {\\n  console.log(\\\"Purchase success:\\\" + result.success);\\n}\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]","excerpt":"Start the purchase flow for predefined items\n`purchaseItems(items, callback)`","slug":"client-api-mtx-purchaseitems","type":"fn","title":"Mtx.PurchaseItems"}

fnMtx.PurchaseItems

Start the purchase flow for predefined items `purchaseItems(items, callback)`

## Requesting Item Purchase You may bring up the "purchase items" dialog box by using the `purchaseItems` method on the `mtx` property on the Kongregate API object. It takes either an array of item identifiers or an array of identifier/metadata objects, as well as a callback function which should be called with the result of the purchase: [block:parameters] { "data": { "h-0": "Name", "h-1": "Type", "h-2": "Description", "0-0": "`items`", "0-1": "Array", "0-2": "Array of item identifier strings, or an array of objects each with a `name` and `data` field.", "1-0": "`callback`", "1-1": "Function", "1-2": "A callback function for when the purchase dialog is closed." }, "cols": 3, "rows": 2 } [/block] The callback function is passed an object with the following fields: [block:parameters] { "data": { "0-0": "`success`", "0-1": "Boolean", "0-2": "A flag indicating whether or not the purchase was successful.", "h-0": "Name", "h-1": "Type", "h-2": "Description" }, "cols": 3, "rows": 1 } [/block] **Example:** Purchasing a single item with identifier "sword": [block:code] { "codes": [ { "code": "kongregate.mtx.purchaseItems([\"sword\"], onPurchaseResult);\n\nfunction onPurchaseResult(result:Object):void {\n trace(\"Purchase success:\" + result.success);\n}", "language": "haxe", "name": "ActionScript 3" }, { "code": "kongregate.mtx.purchaseItems([\"sword\"], onPurchaseResult);\n\nfunction onPurchaseResult(result) {\n console.log(\"Purchase success:\" + result.success);\n}", "language": "javascript" } ] } [/block] ### Metadata You can attach a metadata string to the item instance if needed which can be retrieved from the server later. It is important to note that the client can change this data using a browser plugin fairly easily, so it is a good idea to obfuscate this string, as well as verify its validity as it relates to your game. **Example:** Purchasing an item with metadata attached: [block:code] { "codes": [ { "code": "var items:Array = [{identifier:\"sword\", data:\"+1str\"}];\nkongregate.mtx.purchaseItems(items, onPurchaseResult);\n\nfunction onPurchaseResult(result:Object):void {\n trace(\"Purchase success:\" + result.success);\n}", "language": "haxe", "name": "ActionScript 3" }, { "code": "var items = [{identifier:\"sword\", data:\"+1str\"}];\nkongregate.mtx.purchaseItems(items, onPurchaseResult);\n\nfunction onPurchaseResult(result) {\n console.log(\"Purchase success:\" + result.success);\n}", "language": "javascript" } ] } [/block]