Jump to content

Mark

Clients
  • Posts

    36,220
  • Joined

  • Last visited

  • Days Won

    114

 Content Type 

Downloads

Release Notes

IPS4 Guides

IPS4 Developer Documentation

Invision Community Blog

Development Blog

Deprecation Tracker

Providers Directory

Forums

Events

Store

Gallery

Everything posted by Mark

  1. I had previously blogged about the API in IP.Nexus allowing other applications to process payments using IP.Nexus. We have implemented this in IP.Downloads to bring paid file support. You can specify which groups can add paid files, and which groups (for example the admin group) can download paid files without paying. You can also specify how much commission to take from sales and what to give to the user who submitted the file when it is purchased. A member who has permission will be able to specify how much to charge for a file when submitting it. When viewing a paid file, instead of the "Download File" button, users will see a purchase button. When clicking this button, the user will be taken to the payment screen and payment will be taken. If payment is successful, the user will be taken straight back to the download page where they will now see the normal "Download File" button. The commission to be given to the member who submitted the file will be applied in the form of account credit, which, if allowed, he can request be paid out. This will be discussed in a future blog entry. As you can see, the IP.Nexus & IP.Downloads integration is very simple to set up and use but allows IP.Downloads to be used by those selling digital files without the need for a complete billing system. View full blog entry
  2. One of the first things I wanted to talk about with IP.Nexus is how easy it is for third-party developers to integrate with IP.Nexus. You could for example, have an area of your application that you only want available to users who pay a fee. IP.Nexus makes this possible. There is a special class in IP.Nexus called commerceApi that allows you to generate an invoice, and check if an item has been purchased. In addition, you can make use of special extension files to automatically run when an item from your application is purchased, expires or is renewed - and your items can appear in the Admin CP "Generate Invoice" page. For example, we have written integration for IP.Nexus with IP.Downloads using this functionality, which we will demonstrate in a future blog entry. For developers, to generate an invoice, you simply call the commerceApi::generateInvoice() method. This is the code we use within the donation module of IP.Nexus: try { $title = "Donation: {$goal['d_name']}"; $invoiceID = commerceApi::generateInvoice( $title, $this->memberData['member_id'], array( array( 'act' => 'charge', 'app' => 'commerce', 'type' => 'donation', 'cost' => $amount, 'itemName' => $title, 'itemID' => $goal['d_id'] ) ) ); } catch( Exception $e ) { $this->registry->output->showError( "An error occurred while trying to generate your invoice. Please try again or contact an administrator. ({$e->getMessage()})", 12345 ); } $this->registry->getClass('output')->silentRedirect( $this->settings['base_url'] . 'app=commerce&module=payments&section=pay&id=' . $invoiceID ); As you can see, the code passes some information about the item(s) being purchased. At this point, commerceApi generates an invoice, and then the user is sent to the payment screen. Once payment has been processed, the user will be sent right back to the file. Using this functionality you can: Specify a base cost for your itemSpecify renewal termsProvide a URL to the item which will be linked to on the invoice screenSpecify a member who should get commission for the purchase and how much commission to give them (for example, if the item was added by another member)Specify a URL to return the user to once payment has been received Later in your code, to check if a user has purchased an item (for example, when they try to access a restricted area) you just call commerceApi::itemIsPurchased() to check if they have paid for the item. if ( commerceApi::itemIsPurchased( $this->memberData['member_id'], 'myapp', 'item_type', $data['id'] ) != 'ACTIVE' ) { // Item not purchased... } commerceApi::itemIsPurchased() will return a value indicating whether the item was purchased, and if the renewals are active. As you can see, the API is very simple to use and means mod authors do not have to worry about implementing payment systems in their own applications. We're really excited to see how mod authors will use this functionality and as always, if you have any questions, please post them in our feedback forum. Our next blog entry will demonstrate how we used this functionality to implement paid files within IP.Downloads.
  3. One of the first things I wanted to talk about with IP.Nexus is how easy it is for third-party developers to integrate with IP.Nexus. You could for example, have an area of your application that you only want available to users who pay a fee. IP.Nexus makes this possible. There is a special class in IP.Nexus called commerceApi that allows you to generate an invoice, and check if an item has been purchased. In addition, you can make use of special extension files to automatically run when an item from your application is purchased, expires or is renewed - and your items can appear in the Admin CP "Generate Invoice" page. For example, we have written integration for IP.Nexus with IP.Downloads using this functionality, which we will demonstrate in a future blog entry. For developers, to generate an invoice, you simply call the commerceApi::generateInvoice() method. This is the code we use within the donation module of IP.Nexus: try { $title = "Donation: {$goal['d_name']}"; $invoiceID = commerceApi::generateInvoice( $title, $this->memberData['member_id'], array( array( 'act' => 'charge', 'app' => 'commerce', 'type' => 'donation', 'cost' => $amount, 'itemName' => $title, 'itemID' => $goal['d_id'] ) ) ); } catch( Exception $e ) { $this->registry->output->showError( "An error occurred while trying to generate your invoice. Please try again or contact an administrator. ({$e->getMessage()})", 12345 ); } $this->registry->getClass('output')->silentRedirect( $this->settings['base_url'] . 'app=commerce&module=payments&section=pay&id=' . $invoiceID ); As you can see, the code passes some information about the item(s) being purchased. At this point, commerceApi generates an invoice, and then the user is sent to the payment screen. Once payment has been processed, the user will be sent right back to the file. Using this functionality you can: Specify a base cost for your itemSpecify renewal termsProvide a URL to the item which will be linked to on the invoice screenSpecify a member who should get commission for the purchase and how much commission to give them (for example, if the item was added by another member)Specify a URL to return the user to once payment has been received Later in your code, to check if a user has purchased an item (for example, when they try to access a restricted area) you just call commerceApi::itemIsPurchased() to check if they have paid for the item. if ( commerceApi::itemIsPurchased( $this->memberData['member_id'], 'myapp', 'item_type', $data['id'] ) != 'ACTIVE' ) { // Item not purchased... } commerceApi::itemIsPurchased() will return a value indicating whether the item was purchased, and if the renewals are active. As you can see, the API is very simple to use and means mod authors do not have to worry about implementing payment systems in their own applications. We're really excited to see how mod authors will use this functionality and as always, if you have any questions, please post them in our feedback forum. Our next blog entry will demonstrate how we used this functionality to implement paid files within IP.Downloads. View full blog entry
  4. Invision Power Services is seeking a knowledgeable and industrious individual to join its support team as a part time support technician. Successful applicants will be responsible for answering general support tickets, including providing customers with information, troubleshooting problems and performing maintenance. You would be expected where appropriate to interact with other technicians and developers to resolve issues. Requirements: Must be familiar with IPS applications. Must have a basic knowledge of PHP and SQL. Must be able to work remotely. Must speak fluent English and possess strong verbal and written communication skills. Preferable, but not required:Knowledge of server administration and experience working for a web hosting company. Knowledge of additional web technologies such as JavaScript, CSS, XML, etc. Experience of working in customer support. Working hours are flexible and salary will be based on knowledge and experience. Thank you to all who applied. Applications are now closed.
  5. Maybe a little overcomplicated?
  6. In IP.Board 3.0 we introduced a simple reputation feature, allowing users to give positive or negative reputation to a post. While administrators can view who gave reputation through the Admin CP, in IP.Board 3.1 we have introduced a way for all users to view who gave reputation on any given post. To view who gave reputation, you just click on the reputation number at the bottom of the post which will now display a popup balloon indicating who has given reputation. There is a per-group setting to control who can use this feature. If a user does not have permission to use it, the number will not be clickable and appear unchanged from how it currently is. The data is loaded through an AJAX call when the link is clicked, so there is no additional queries to the topic view for this feature.
  7. In IP.Board 3.0 we introduced a simple reputation feature, allowing users to give positive or negative reputation to a post. While administrators can view who gave reputation through the Admin CP, in IP.Board 3.1 we have introduced a way for all users to view who gave reputation on any given post. To view who gave reputation, you just click on the reputation number at the bottom of the post which will now display a popup balloon indicating who has given reputation. There is a per-group setting to control who can use this feature. If a user does not have permission to use it, the number will not be clickable and appear unchanged from how it currently is. The data is loaded through an AJAX call when the link is clicked, so there is no additional queries to the topic view for this feature. View full blog entry
  8. I disagree. For some communities I can certainly see the use.
  9. I didn't say you didn't... but we can't ignore standards just because you don't care about them.
  10. We do, as do most web designers. Not to mention, the SEO fanatics would have your head for saying that ;)
  11. Well that would be a bug which should be reported ;) I've never heard of or seen this issue.
  12. IPB does try to detect if Minify will work and disable it if not. If for whatever reason the detection doesn't work you can disable it in the ACP - if you'd had contacted support from the start they would have recognised the problem straight away ;) The main problem for Minify not working and IPB not being able to detect it is due to it's reliance on changing the include path - I did contact Minify a little while ago about this and they told me they would be changing that.
  13. Have you tried clicking the "Get Help With This Page" link on the user agent page? It will take you to here: http://community.invisionpower.com/resources/official.html?record=293 If you feel that article can be improved, you need to let us know what it's missing... that is what the comment feature is for. Although it does answer the question being asked: If you're interested in learning more about Regex, this is a good place to start. With regards to "." vs "\." though - "." in Regex represents any character, so for the sake of detecting "bestsearchengine.com" - it doesn't really matter if you enter "bestsearchengine.com" or "bestsearchengine\.com".
  14. You can configure who can submit reports, but not who reports can be submitted about. I can't say whether it will or will not get added, I just personally don't see the point ;)
  15. I disagree. Let's say I was posting a reply to pre-sales question and I mistakenly typed that a license costs $14.99 instead of $149.99 - reporting the post would be the obvious thing to do so that it can be corrected.
  16. If you give those errors to your hosting provider, they should be able to edit the configuration to fix them. If you want to remove the GMail module, just delete the sources/components_public/utr_classes/utr_gmail.php file.
  17. Mark

    For IPS Staff.

    Great to know that we're able to provide you with a level of service you're pleased with. While it seems I've never dealt with one of your tickets myself, I'll mention this topic to the techs that have ;) Thanks for taking the time to post this. As always, if there's anything else we can do for you, just let us know :)
  18. Even the Business license does not offer the level of support the OP is requesting. Tickets business license holders are highlighted for us, they get phone support, and we guarantee them a shorter response time - but we have never offered 24/7 support - the ticket system is constantly staffed, but you're ticket is not always first in the queue (there are times when we have no tickets, it fluctuates very much depending on the time of day, and the day of the week). Although, in this particular case, the OP posted that the issue was resolved just over 2 hours after posting the topic, and it was 2.30am, so it would seem we're not doing too badly ;) If of course, you have very particular needs and would like to discuss a custom license agreement you are welcome to contact sales :)
  19. Mark

    IP.Chat help!

    Do not submit a support ticket - it's a beta - we won't be able to assist. If you are experiencing a problem and you're sure you [url=" everything correctly, please file a bug report so a developer can look into it. It sounds like Depotoir you didn't uninstall the original chat application first, which the instructions says to do (in bold, prefixed by the word "Important") :rolleyes:
  20. Mark

    IP.Chat help!

    No it's not. IP.Shoutbox is developed by members of the community who very admirably give up their time to provide it for other members of the community. IP.Chat is developed and will be supported by IPS much like Blog or Gallery. Incidentally, if you don't want to use IP.Chat, don't - it's an addon that will at it's most basic level be provided for free - you never paid for it, we never mentioned it before, and if you don't use it, it doesn't really affect anyone here. Although, it is frustrating how you've based your opinion that IP.Chat has "installation problems" that deem it unusable on a beta - it's this sort of thing that makes me wonder if it's worth releasing public betas at all if people clearly don't understand the concept.
  21. Mark

    IP.Chat help!

    Note the "Installation" header. No help or instruction indeed... :rolleyes:
  22. http://community.invisionpower.com/blog/1174/entry-3625-International-Partner-Program/
  23. Thanks for the business lesson, but it's important to remember that IP.Board isn't trying to be vBulletin. That said, some features on my personal wish-list include improvements to the moderation tools. I'm interested though Gabriel what you think a "moderator control panel" should include - besides possibly a central location for viewing approved/unapproved content - there aren't any tools I can think of that would be suitable for a moderator control panel since they can already do everything (i.e. manage forums and edit members) inline.
  24. Glad to hear it's been fixed :) Between the US and European staff, we do have technicians working the majority of the day during the week.
  25. I have fixed the problem for you and your site is now back online. I'm a little confused as to what's gone on so far though - you say that you called in, but there is nobody in the office right now, so I don't see how that could be possible. You seem to have been able to submit tickets in the past, so I'm not sure why you're unable to submit one now... I can log in as you and the client area functions correctly. You can submit a ticket under "Your Purchases" rather than "Your Tickets" if you have any joy that way. I would encourage you to call into the offices tomorrow if you're still unable to submit tickets so that this problem doesn't occur again - it's free to call. I would ask other customers to please remember to report these threads in future so a member of staff is alerted. Also, please refrain from posting things you're not sure about as to avoid further confusion (for example, hosting customers do have phone support). Thanks :)
×
×
  • Create New...