Developers
Integrate mobile payments and monetize with Mocopay
Our developer center provides all the details for a simple and smooth integration so you could easily add mobile payments with Mocopay.
Integration instructions
In order to integrate MoCoPay payment by using cross-platform API developer needs to implement flow with several steps which include HTTP method calls and redirection to payment forms.
Flow steps:
- End user decides to purchase some item in your service.
- Service provider calls initPayment method towards MoCoPay payment server and server responds with response which in OK case holds redirectUrl parameter.
- Service provider by default redirects end user to received URL, where he is presented with payment forms which instruct how to pay.
- Usually, if there is no direct operator payment involved, user needs to send SMS message to MoCoPay payment server short code.
- MoCoPay server returns to the user billing SMS message and in case of sucessfull delivery, payment is done and user can be given the content.
- Upon sucessfull payment, MoCoPay server sends payment notification (both session and transaction) to the service providers notification URL.
- User is returned back to the service provider callbackURL which was given to MoCoPay during the service setup in control box or in initPayment method.
- Optionally service provider can call verifyPayment method towards MoCoPay payment server, to check which is the status of processing payment.
- In case of sucessfull payment, service provider should deliver end user his paid content.
Method and callbackUrl redirection specification:
initPayment
Method parameters:
| Parameter | Description | Man/opt. |
| pid | Payment product ID ( provided by MoCoPay during initial service setup) | m |
| mcc | Mobile country code | o |
| mnc | Mobile network code. | o |
| country | Country ISO 2 code. | o |
| userId | Buyer identifier set by Customer | o |
| clientIp | Buyer IP address | o |
| phone | Buyer mobile phone number (if available to a Customer). | o |
| lang | Preferred language code (ISO 639-1). | o |
| referenceId | Custom Customer payment session reference ID. | o |
| callbackUrl | Call-back URL where Buyer is redirected after payment process has been finished. | o |
| notifyUrl | Notification URL for payment notifications | o |
| imageUrl | Product image URL for payment form | o |
| signature | MD5 Signature string, explained in Calculating signature chapter. Optionally can be sent in this form and not in HTTP header. | o |
Example of GET request:
GET /v1/payment/initPayment?mcc=999&mnc=99&pid=CHMIBSUB HTTP/1.1 Accept: application/json, application/*+json Signature: ApiKey DEMOKEYSTANDARD:IyiEcGCKRZcbUwmt5Nf7Jyfn1NY= Host: 10.10.111.111:8182 Connection: Keep-Alive User-Agent: Apache-HttpClient/4.3.2 (java 1.5) Accept-Encoding: gzip,deflat
Response:
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 176
{
"requestId": "9bf849fd215542088fa5c98b99a185a2",
"redirectUrl": "http://checkout.mocopay.com/paymentService/init.html?trn=123&exp=127362736211&hash=deiuheiehfc89cicssic9j9sc"
}
callbackUrl redirection
Redirection parameters:
| Parameter | Description |
| requestId | Payment initialization request ID. |
| sid | Payment session ID. |
| sessionId | Payment session ID. |
| referenceId | referenceId sent by service provider in initPayment request |
| status | Status of executed payment |
Example of redirection to custom callbackUrl:
HTTP/1.1 302 Found Location: http://www.client.com/app1?sid=8903cf28aa3940f0b31d699fea5aa7ff&sessionId=8903cf28aa3940f0b31d699fea5aa7ff&requestId=9bf849fd215542088fa5c98b99a185a2&referenceId=20162016&status=PaymentComplete
verifyPayment
Method parameters:
| Parameter | Description | Man/opt. |
| sessionId | Payment session ID. Either this or userId or transactionId parameter is mandatory. | m/o |
| userId | Buyer identifier. Either this od sid or transactionId parameter is mandatory. | m/o |
| transactionId | Payment transaction ID. Either this or sid or userId parameter is mandatory. (for Payment transaction) | m/o |
Example of POST request:
POST /v1/payment/verifyPayment?userId=359276053656628 HTTP/1.1 Accept: application/json, application/*+json Signature: ApiKey DEMOKEYSTANDARD:Lu48LwCUxAalXuCCLlz+UrbaLow= Content-Length: 0 Host: 10.10.111.111:8182 Connection: Keep-Alive User-Agent: Apache-HttpClient/4.3.2 (java 1.5) Accept-Encoding: gzip,deflate
Response:
{
"sessionId" : "518ec5708a8842dba19993f01ef863b5",
"serviceCode" : "PS-000-002",
"pid" : "PP27638049",
"type" : "subscription",
"endUser" : {
"userId" : "359276053656628",
"phone" : "0099923026",
"mcc" : "999",
"mnc" : "99"
},
"lang" : "hr",
"series" : 120,
"status" : "Authorized",
"chargedAmount" : 0,
"failedAmount" : 0,
"lastChargedAmount" : 10,
"lastFailedAmount" : 0,
"totalChargedAmount" : 10,
"totalFailedAmount" : 0,
"currencyCode" : "TES",
"recurrent" : true,
"expiresIn" : -115392,
"timeInit" : "2014-04-02 14:34:53",
"timeAuthorized" : "2014-04-02 14:35:29",
"timeLastSuccessfullPayment" : "2014-04-02 14:35:30",
"transactions" : [ "ad22a2c458dc4bafbf81de733af21d27", "076fbc5879584b1bb538497f3d772f21", "e83ebf6c4eed42cbb2d4188cd6aa4c43"]
}
