The demo access was sent to your email address.
Attribute | Type | Value |
allowedChatType | Integer |
"0" - Model currently accept Free chat "1" - Model is in Break mode "2" - Model is in Group chat and does not accept Free. "3" - Model is busy in Private chat. "4" - Model is Offline. "5" - Model is in Private chat and accept only Voyeur (Spy) chat. |
liveChatStatus | Integer |
"0" - Model is Offline "1" - Model is Online |
Tag | Type | Description | Example Value |
id | Integer | Model id | 11 |
screenName | String | Model visual name on website and in chats | Test_model |
categoryIds | String (Array of Integers) | IDs of categories the model is listed in | 1,2,3 |
featuredPicture | Integer | Profile image parameters | 123 |
privateShowPrice | Double | Model’s GROUP chat price | 1.0 |
vipShowPrice | Double | Model’s PRIVATE one2one chat price | 2.0 |
voyeurShowPrice | Double | Model’s VOYEUR (SPY) chat price | 0.5 |
age | Integer | Model’s visible age | 18 |
gender | String | Model’s gender | Female |
customFields | Array of custom tags | Model’s profile information fields | Look at the table customFields below |
blockedLocations | Array of custom tags | Countries/states/IP addresses model is blocked | Look at the table blockedLocations below |
"name" attribute | Type | Example Value |
body | String | Petite |
height | String | 150cm (4'11") |
weight | String | 38kg (84 lbs) |
hairColor | String | Blonde |
hairLength | String | Long |
eyeColor | String | Blue |
ethnic | String | White |
orientation | String | Straight |
aboutMe | CDATA | <![CDATA[ Some info ]]> |
galleryContext | String (URL) | https://webvideo.softservice.org/templates/galleries/11 |
pictureUrl = galleryContext + "/" + pictureId + "320x240.jpg"
Image size is equals to requested boundary and cropped to keep aspect ratio:
pictureUrl = galleryContext + "/" + pictureId + "320x240_crop.jpg"
Image size is equals to requested boundary and aspect ratio is ignored:
pictureUrl = galleryContext + "/" + pictureId + "320x240_fixed.jpg"
Attibute | Type | Example Value |
country | Integer | 321 |
state | String | CA |
ip | Long Integer | 134744072 |
ipMask | Long Integer | 4294967295 |
https://<domain>/exec/modelnet-provider.jsp?cmd=get-models&k=<secret-key>
Parameter | Type | Value | Description |
k | String | Secret key shared between WebVideo and third-party system. |
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Modelnet</title>
<link>https://webvideo-domain-name</link>
<description>Performers</description>
<ttl>1</ttl>
<lastBuildDate>current date time</lastBuildDate>
<item allowedChatType="4" liveChatStatus="0">
<id>11</id>
<screenName>Test_model</screenName>
<categoryIds>1,2,3</categoryIds>
<featuredPicture id=”123” />
<privateShowPrice>1.0</privateShowPrice>
<vipShowPrice>2.0</vipShowPrice>
<voyeurShowPrice>0.5</voyeurShowPrice>
<age>18</age>
<gender>Female</gender>
<customFields>
<custom name="body">Petite</custom>
<custom name="height">150cm (4'11")</custom>
<custom name="weight">38kg (84 lbs)</custom>
<custom name="hairColor">Blonde</custom>
<custom name="hairLength">Long</custom>
<custom name="eyeColor">Blue</custom>
<custom name="ethnic">White</custom>
<custom name="orientation">Straight</custom>
<custom name="aboutMe"><![CDATA[ Some info ]]></custom>
<custom name="galleryContext">https://webvideo.softservice.org/templates/galleries/11</custom>
</customFields>
<blockedLocations>
<location country=”231” state=”CA” />
<location ip=”134744072” ipMask=”4294967295” />
</blockedLocations>
</item>
<item ...>
...
</item>
</channel>
</rss>
https://<domain>/exec/modelnet-provider.jsp
Property | Type | Value | Description |
cmd | String | get-categories | Type of call |
k | String | Secret key shared between WebVideo and third-party system. |
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Modelnet</title>
<link>http://demo.modelnet.club</link>
<description>Categories</description>
<ttl>1</ttl>
<lastBuildDate>Tue, 23 Jan 2018 09:52:08 NOVT</lastBuildDate>
<item>
<title>Girls alone</title>
<id>115</id>
<name language="english" lng="en">Girls alone</name>
</item>
<item>
<title>Couples</title>
<id>124</id>
<name language="english" lng="en">Couples</name>
</item>
</channel>
</rss>
https://<domain>/exec/modelnet-provider.jsp
Parameter Name | Type | Example Value | Description |
cmd | String | get-customer-info | Type of call |
viewer id | String | 4462039D8E2B492EB92B42A1B6C7F246 | String unique identifier of third-party user. This parameter is passed to WebVideo chat in HTML and passed back to third-party system. Could be SESSIONID / GUID/ user Id or any other string uniquely identifies user. |
performer-id | Integer | 11 | WebVideo model id the user currently entering to. |
k | String | Secret key shared between WebVideo and third-party system. |
<customer id="123" screeName="test_user" balance="123.12">
Attribute Name | Type | Description |
id | Integer | Strictly integer id of customer |
screeName | String | String user’s screen name |
balance | Double | Double 2-fraction digits user’s balance |
<error>Something is wrong</error>
https://<domain>/exec/modelnet-provider.jsp
Parameter Name | Type | Expected Value | Description |
cmd | String | check-enough-balance | Type of call |
customer-id | Integer | 123 | Id of third-party customer returned in response to get-customer-info call |
amount | Double | 1.02 | Double 2-fraction digits amount required to be locked on user’s balance |
session-id | Integer | 123123 |
WebVideo chat session id. In case the amount should be locked
for chat session. In case of TIPPING this value will be empty. In case of amount=0 and session-id is empty this call actually check for whole third-party backend website is available and customer is not blocked of starting privates. In this case website should either return error in case of customer is blocked or customer balance otherwise. |
performer-id | Integer | 11 | WebVideo model id. Model id in case the amount should be locked for chat session. In case of TIPPING this value will be empty. |
tariff-type | Integer | 2 |
Available values: 2 - Group chat 3 - Private chat 4 - Voyeur (Spy) chat In case of TIPPING this value will be empty. |
session-start-time | String (UTC Format) | 2016-04-07 15:07:21 | UTC current chat session start time. In case of TIPPING this value will be empty. |
session-end-time | String (UTC Format) | 2016-04-07 15:08:51 | UTC current chat session end time. In case of TIPPING this value will be empty. |
k | String | Secret key shared between WebVideo and third-party system. |
<customer balance="55.32">
Where balance does not include locked amount.
For example in case user’s actual balance is 56.34 and WebVideo
requested to lock 1.02 the expected response balance should be 55.32.
<error>Your balance is not enough to continue</error>
https://<domain>/exec/modelnet-provider.jsp
Parameter Value | Type | Example Value | Description |
cmd | String | create-session-by-session | Type of call |
customer-id | Integer | 123 | Id of third-party customer returned in response to get-customer-info call |
session-id | Integer | 123123 | WebVideo chat session id. |
session-start-time | String (UTC Format) | 2016-04-07 15:07:21 | UTC current chat session start time. |
session-amount | Double | 1.02 | Double 2-fraction digits amount to charge. |
performer-id | Integer | 11 | WebVideo model id. |
k | String | Secret key shared between WebVideo and third-party system. |
<customer balance="55.32">
User's balance after this charge transaction;<erorr>Something went wrong</error>
https://<domain>/exec/modelnet-provider.jsp
Parameter Name | Type | Example Value | Description |
cmd | String | create-expenses-by-tip | Type of call |
customer-id | Integer | 123 | Integer id of third-party customer returned in response to get-customer-info call |
tip-amount | Double | 5.00 | Double 2-fraction digits amount to charge. |
performer-id | Integer | 11 | WebVideo model id. |
performer-screenName | String | test_model | WebVideo model screen name. |
k | String | Secret key shared between WebVideo and third-party system. |
<customer balance="55.23">
User’s balance after this charge transaction.
<error>Something went wrong</error>
<div id="widget-webvideo_chat"></div>
<script type="text/javascript" src="https:///exec/widgets/chat/api.jsp?<parameters>"></script>
https://<domain>/exec/widgets/chat/api.jsp?<parameters>
Fields marked with are required.
Parameter Name | Type | Example Value | Description |
performer_id | Integer | 123 | WebVideo model id. |
authCode | String | 4462039D8E2B492EB92B42A1B6C7F246 | String unique identifier of third-party user. This parameter is used get-customer-info request. Could be SESSIONID / GUID/ user Id or any other string uniquely identifies user. |
loginUrl | String (URL) | https://<domain>/login | Absolute URL to user’s login page. Оpen in a new window (target=_blank). |
registrationUrl | String (URL) | https://<domain>/join | Absolute URL to user’s registration page. Оpen in a new window (target=_blank). |
modelListUrl | String (URL) | https://<domain>/models | Absolute path to models list. Оpen in a parent window (target=_top). |
modelProfileUrl | String (URL) | https://<domain>/model123 | Absolute path to model’s profile page.. Оpen in a parent window (target=_top). |
addFundsUrl | String (URL) | https://<domain>/addfunds | Absolute URL to user’s add funds page. Оpen in a new window (target=_blank). |
custom_css_url | String (URL) | https://<domain>/chat_custom.css | Absolute URL to chat widget customization CSS. |
ttl | Long | 1411103607000 | Widget page expiration time (UTC time in milliseconds). Copy-paste protection. |
salt | String | aabbccdd | HASH salt value. |
hash | String |
HASH value generated by following scheme: SHA256(all parameters alphabetically ordered and concatenated + secret key) Secret key is setup in WebVideo Admin Area: System configuration -> Internal callback secret key |
<?php
$data_ar = array(
"performer_id" => "123",
"authCode" => "4462039D8E2B492EB92B42A1B6C7F246",
"loginUrl" => "https://domain.com/login",
"registrationUrl" => "https://domain.com/join",
"modelListUrl" => "https://domain.com/models",
"modelProfileUrl" => "https://domain.com/model/123",
"addFundsUrl" => "https://domain.com/addfunds",
"custom_css_url" => "https://domain.com/chat_custom.css"
);
function sign_params($data_ar, $secret_key)
{
$data_ar['salt'] = uniqid();
$data_ar['ttl'] = round(microtime(true) * 1000) + 30*60*1000; //Link valid for 30min
ksort($data_ar, SORT_STRING);
$data_ar['hash'] = hash('sha256', implode('', $data_ar) . $secret_key);
return $data_ar;
}
function getWebvideoWidgetUrl($data_ar) {
$webvideo_secret_key = 'webvideocallback123';
return 'https://webvideo-domain-name/?' . http_build_query(sign_params($data_ar, $webvideo_secret_key));
return $url;
}
?>
<div id="widget-webvideo_chat"></div>
<script type="text/javascript" src="<?php print(getWebvideoWidgetUrl($data_ar)); ?>"></script>