API Explanation

Request Type

POST

Request URI

/api/v1/pay/unionpay/web-secure-pay

Request

ParameterTypeRequiredDescriptionRemark
amountStringYesTransaction Amountcent is the unit, “100” means a dollar
callbackURLStringYesCallback URLSend notifications to this URL when an order is complete (Maximum length 255 English characters)
returnURLStringYesReturn URLAfter the payment is completed, will navigate to this URL (Maximum length 255 English characters)
remarkStringNoRemarkRemark(Maximum length with 128 English characters)

Request Example:

{
  "amount": "1000",
  "callbackURL": "https://your.callback.url",
  "returnURL": "https://your.return.url",
  "remark": ""
}

Response

ParameterTypeDescriptionRemark
formStringHTML format Form codeFor front-end embed and let users start the payment
paymentIdStringPayment ID

Response Example:

{
  "status": "SUCCESS",
  "result": {
    "form": "<form id = \"pay_form\" action=\"https://gateway.95516.com/gateway/api/frontTransReq.do\" method=\"post\"><input type=\"hidden\" name=\"bizType\" id=\"bizType\" value=\"000201\"/><input type=\"hidden\" name=\"txnSubType\" id=\"txnSubType\" value=\"01\"/><input type=\"hidden\" name=\"orderId\" id=\"orderId\" value=\"1677702123950651\"/><input type=\"hidden\" name=\"backUrl\" id=\"backUrl\" value=\"https://uat-scanpay.ottpay.com/upopcallback\"/><input type=\"hidden\" name=\"signature\" id=\"signature\" value=\"nvEsixVMHU6ZUbVVRxm9ddBVeqJxJj1u/P2IIk53Qn2SgM4XzSqjYySDH7qFjwW8iOr+DXqEF1iyrPc+AFm0jESU8wuOG+T1ZJL0hr5FMGScjI0KnEi+O2LFZUhT9cCU3CS3idenwB4lCL4s0hPeAiU6rE3o3kNQvPb4UBYaZMmc5uQTLScsibt06eKjFUfIBELKAIFyOftoow3nUj3ax50ITWnxtQbe2DfarITDy6lA60CznZzdp9YRzTKgzS91oM6xdLDupzr3aAmkAmEfUY/MaaFBrLgZQSPCugz+TiXUBrzNkli73REM+2hcIhQi+3Na3SACw+4814IvMa/R8w==\"/><input type=\"hidden\" name=\"merName\" id=\"merName\" value=\"(OTTITTT Test)GCwebappONLMarkham     CAN\"/><input type=\"hidden\" name=\"txnType\" id=\"txnType\" value=\"01\"/><input type=\"hidden\" name=\"channelType\" id=\"channelType\" value=\"07\"/><input type=\"hidden\" name=\"frontUrl\" id=\"frontUrl\" value=\"https://www.example.ca\"/><input type=\"hidden\" name=\"certId\" id=\"certId\" value=\"79513944402\"/><input type=\"hidden\" name=\"encoding\" id=\"encoding\" value=\"UTF-8\"/><input type=\"hidden\" name=\"acqInsCode\" id=\"acqInsCode\" value=\"41390124\"/><input type=\"hidden\" name=\"version\" id=\"version\" value=\"5.1.0\"/><input type=\"hidden\" name=\"merAbbr\" id=\"merAbbr\" value=\"(OTTITT\"/><input type=\"hidden\" name=\"accessType\" id=\"accessType\" value=\"1\"/><input type=\"hidden\" name=\"reserved\" id=\"reserved\" value=\"{eci=09&pageLanguage=en_US&cardNumberLock=1}\"/><input type=\"hidden\" name=\"txnTime\" id=\"txnTime\" value=\"20230302042204\"/><input type=\"hidden\" name=\"merId\" id=\"merId\" value=\"797800000185001\"/><input type=\"hidden\" name=\"merCatCode\" id=\"merCatCode\" value=\"5944\"/><input type=\"hidden\" name=\"accType\" id=\"accType\" value=\"01\"/><input type=\"hidden\" name=\"payTimeout\" id=\"payTimeout\" value=\"20230302043704\"/><input type=\"hidden\" name=\"currencyCode\" id=\"currencyCode\" value=\"124\"/><input type=\"hidden\" name=\"signMethod\" id=\"signMethod\" value=\"01\"/><input type=\"hidden\" name=\"txnAmt\" id=\"txnAmt\" value=\"1000\"/></form><script type=\"text/javascript\">document.all.pay_form.submit();</script>",
    "paymentId": "1677702123950651"
  }
}

Payment Result

After the OTT Pay API server obtains the payment result from the payment channel, it will immediately send the payment result to the specified callbackURL. Of course, the merchant system can also actively query through Payment Status Query API.