# PC Web Integration Specification V4.2.0 [Shanghai AllPay Technology Co., Ltd.](https://www.allpayx.com) * Version:English V4.2.0 * Update Time:April 2018 #### 1.Overview AllPay provides customers with unified API access to help them implement fast, secure and centralized access payment channels. #### 2.Transaction process ![image](https://git.allpayx.com/OpenAPI/b2c/raw/master/images/pc_flowsheet.png) #### 3.General API specification Common interface between merchant server and AllPay gateway, each channel has functions including: Purchase, Refund, Inqiury interface. ##### 3.1. Description of verifying the signature ``` 1.For a POST request message sent to the ALLPAY system, in which all incoming parameters (except signature parameters) according to the field name of ASCII smallest sequence (dictionary), using the format of the URL key/value pair (key1 = value1 & key2 = value2... ) spliced into a string String1. 2.At the end of String1, the signature key K1(assigned at ALLPAY upon access) agreed by both parties is spliced directly (no need to connect with "&"), resulting in a stringSignTemp string, and an md5 operation on stringSignTemp to get the value of signature. 3.Sample signature string:acqID=99020344&backURL=https://www.baidu.com&charSet=UTF-8&frontURL=nil&goodsInfo=iPhone x&merID=800039253992510&merReserve=&orderAmount=1.00&orderCurrency=INR&orderNum=ap0180417163142&paymentSchema=EB&signType=MD5&transTime=20180417163142&transType=PURC&trxn_email_id=benson.zhang@allpayx.com&trxn_firstname=benson zhang&trxn_is_coupon_enabled=1&trxn_phone=15026528888&unique_id=abcde12345&version=VER000000002f3e0e436cd24430aa4aaaed597450f26 ``` ##### 3.2. General API access address Transaction Type |Test Address|Production Address ------- |-----------|------- Purchase |https://testapi.allpayx.com/pay |https://api.allpayx.com/pay Inqiury |https://testapi.allpayx.com/pay |https://api.allpayx.com/pay Refund |https://testapi.allpayx.com/pay |https://api.allpayx.com/pay ##### 3.3. Purchase interface 1. Request message format This field is a list of common fields, sending, every channel needs some channel channel exclusive field, specific fields please go to the channel's exclusive canal to the fields that view. Consumer interface is divided into jump transformation and parameters return type, default to jump transformation, parameters return type will be explained in chapter 4 channels (exclusive) inside. No. |Field Name |Max.Length|Type|Parameter Name|Comment -----|-----|----|----|------|------ 1|Message Version|12|Text|version |"VER000000002" 2|Character set coding |6|Text|charSet |"UTF-8" 3|Transaction type |4|Text|transType |"PURC" 4|Order Number |60|Text|orderNum |The merchant shall define it by itself, and the order number of the same merchant number shall not be repeated 5|Order Amount |12|Text|orderAmount |100 is displayed as 100 or 100.00 6|Order Currency |3|Text|orderCurrency |Fill in "CNY" in RMB and "USD" in USD 7|Frontend URL Address |400|Text|frontURL |Payment results are notified to this address front 8|Backend URL Address |400|Text|backURL |Payment results are notified to this address asynchronously 9|Merchant Reserved |1024 |Text|merReserve |Merchant reserved content, can pass any content, such as purchase information, account number, etc., but do not pass special symbols, such as commas. 10|Merchant ID |15 |Text|merID |Merchant ID, assigned by AllPay 11|Acquirer ID |11 |Text|acqID |"99020344" 12|Payment Channel Code |10 |Text|paymentSchema|Payment Channel Code:[Click here for details](https://git.allpayx.com/OpenAPI/b2c/src/master/pc_api/paymentSchema.md) 13|Goods Information |60 |Text|goodsInfo |Goods Information 14|Transaction Time |14 |Text|transTime |Transaction time, format :" yyymmddhhmmss" 15|Signature Type |3 |Text|signType |MD5 16|Signature Data |32 |Text|signature |MD5 signature 2. Jump transformation Purchase interface response message The merchant needs to provide an HTTP/HTTPS protocol interface that is included in the parameters passed to the SDK, the backURL. After the payment is complete, the AllPay server will call the backURL as a Get, informing the payment result. The parameters are as follows: No. |Field Name |Max.Length|Type|Parameter name|Comment -----|-----|----|----|------|------ 1|Message Version|12|Text|version |"VER000000002" 2|Character set coding |6|Text|charSet |"UTF-8" 3|Transaction type |4|Text|transType |"PURC" 4|Order Number |60|Text|orderNum |The merchant shall define it by itself, and the order number of the same merchant number shall not be repeated 5|Order Amount |12|Text|orderAmount |100 is displayed as 100 or 100.00 6|Order Currency |3|Text|orderCurrency |Fill in "CNY" in RMB and "USD" in USD 7|Settlement Amount |12 |Text|settAmount |100 is displayed as 100 or 100.00 8|Settlement Currency |3|Text|settCurrency |Comply with ISO standards and fill in the number type 9|Settlement FX Rate |7|Text|rate |Real exchange rate, 7 digits 10|Merchant Reserved |1024 |Text|merReserve |Merchant reserved content, can pass any content, such as purchase information, account number, etc., but do not pass special symbols, such as commas. 11|Gateway Transaction ID |32|Text|transID |The unique transaction id generated by the gateway. 12|Merchant ID |15 |Text|merID |Merchant ID, assigned by AllPay 13|Acquirer ID |11 |Text|acqID |"99020344" 14|Payment Channel Code |10 |Text|paymentSchema|Payment Channel Code:[Click here for details](https://git.allpayx.com/OpenAPI/b2c/src/master/pc_api/paymentSchema.md) 15|Response Code |2 |Text|RespCode |00 stands for success; 01 stands for fail. 16|Response Message |20 |Text|RespMsg |Response message, all English characters 17|Transaction Time |14 |Text|transTime |Transaction time, format :" yyymmddhhmmss" 18|Gateway process time |14 |Text|GWTime |YYYYMMDDHHMMSS this should be a GWtime, currently is local transaction time 19|Signature Type |3 |Text|signType |MD5 20|Signature Data |32 |Text|signature |MD5 signature ##### 3.4. Inqiury interface 1. Interface specification This interface provides the function of inqiury transaction for access merchants. 2. Request message format No. |Field Name |Max.Length|Type|Parameter name|Comment -----|-----|----|----|------|------ 1|Message Version|12|Text|version |"VER000000002" 2|Character set coding |6|Text|charSet |"UTF-8" 3|Transaction type |4|Text|transType |"INQY" 4|Order Number |60|Text|orderNum |The merchant shall define it by itself, and the order number of the same merchant number shall not be repeated 5|Merchant Reserved |1024 |Text|merReserve |Merchant reserved content 6|Merchant ID |15 |Text|merID |Merchant ID, assigned by AllPay 7|Acquirer ID |11 |Text|acqID |"99020344" 8|Payment Channel Code |10 |Text|paymentSchema|Payment Channel Code:[Click here for details](https://git.allpayx.com/OpenAPI/b2c/src/master/pc_api/paymentSchema.md) 9|Transaction Time |14 |Text|transTime |Transaction time, format :" yyymmddhhmmss" 10|Signature Type |3 |Text|signType |MD5 11|Signature Data |32 |Text|signature |MD5 signature 3. Response message format No. |Field Name |Max.Length|Type|Parameter name|Comment -----|-----|----|----|------|------ 1|Message Version|12|Text|version |"VER000000002" 2|Character set coding |6|Text|charSet |"UTF-8" 3|Transaction type |4|Text|transType |"INQY" 4|Order Number |60|Text|orderNum |The merchant shall define it by itself, and the order number of the same merchant number shall not be repeated 5|Gateway Transaction ID |32|Text|transID |The unique transaction id generated by the gateway. 6|Merchant ID |15 |Text|merID |Merchant ID, assigned by AllPay 7|Acquirer ID |11 |Text|acqID |"99020344" 8|Response Code |2 |Text|RespCode |00 stands for success; 01 stands for fail. 9|Response Message |20 |Text|RespMsg |Response message, all English characters 10|Transaction Time |14 |Text|transTime |Transaction time, format :" yyymmddhhmmss" 11|Gateway process time |14 |Text|GWTime |YYYYMMDDHHMMSS this should be a GWtime, currently is local transaction time 12|Signature Type |3 |Text|signType |MD5 13|Signature Data |32 |Text|signature |MD5 signature ##### 3.5. Refund interface 1.Interface specification This interface provides the function of refund transaction for access merchants. 2.Request message format No. |Field Name |Max.Length|Type|Parameter name|Comment -----|-----|----|----|------|------ 1|Message Version|12|Text|version |"VER000000002" 2|Character set coding |6|Text|charSet |"UTF-8" 3|Transaction type |4|Text|transType |"REFD" 4|Order Number |60|Text|orderNum |The merchant shall define it by itself, and the order number of the same merchant number shall not be repeated 5|Return Amount |12|Text|returnAmount |100 is displayed as 100 or 100.00 6|Order Currency |3|Text|orderCurrency |Fill in "CNY" in RMB and "USD" in USD 7|Merchant Reserved |1024 |Text|merReserve |Merchant reserved content, can pass any content, such as purchase information, account number, etc., but do not pass special symbols, such as commas. 8|Merchant ID |15 |Text|merID |Merchant ID, assigned by AllPay 9|Acquirer ID |11 |Text|acqID |"99020344" 10|Payment Channel Code |10 |Text|paymentSchema|Payment Channel Code:[Click here for details](https://git.allpayx.com/OpenAPI/b2c/src/master/pc_api/paymentSchema.md) 11|Transaction Time |14 |Text|transTime |Transaction time, format :" yyymmddhhmmss" 12|Signature Type |3 |Text|signType |MD5 13|Signature Data |32 |Text|signature |MD5 signature 3.Response message format No. |Field Name |Max.Length|Type|Parameter name|Comment -----|-----|----|----|------|------ 1|Message Version|12|Text|version |"VER000000002" 2|Character set coding |6|Text|charSet |"UTF-8" 3|Transaction type |4|Text|transType |"REFD" 4|Order Number |60|Text|orderNum |The merchant shall define it by itself, and the order number of the same merchant number shall not be repeated 5|Gateway Transaction ID |32|Text|transID |The unique transaction id generated by the gateway. 6|Merchant ID |15 |Text|merID |Merchant ID, assigned by AllPay 7|Acquirer ID |11 |Text|acqID |"99020344" 8|Response Code |2 |Text|RespCode |00 stands for success; 01 stands for fail. 9|Response Message |20 |Text|RespMsg |Response message, all English characters 10|Transaction Time |14 |Text|transTime |Transaction time, format :" yyymmddhhmmss" 11|Gateway process time |14 |Text|GWTime |YYYYMMDDHHMMSS this should be a GWtime, currently is local transaction time 12|Signature Type |3 |Text|signType |MD5 13|Signature Data |32 |Text|signature |MD5 signature #### 5.Channel exclusive allocation ##### 5.1 EB(Transition) No. |Field Name |Max.Length|Type|Parameter name|Comment -----|-----|----|----|------|------ 1| Name |32 |Text|trxn_firstname |This is name of the customer who is doing the transaction. 2| Email |40 |Text|trxn_email_id |this is email id of the customer who is doing transaction. 3|Phone |20 |Text|trxn_phone|Phone number of the customer. ##### 5.2 UP(Transition) No. |Field Name |Max.Length|Type|Parameter name|Comment -----|-----|----|----|------|------ 1| UnionPay card number |19 | Text|uCardNumber |The overseas UnionPay channel is applicable to the UnionPay excellent plan. Can not upload, if you need to fill in the bank card number in advance, then send this field. ##### 5.3 WX(Includes transition and parameter return) No. |Field Name |Max.Length|Type|Parameter name|Comment -----|-----|----|----|------|------ 1| Transaction scenario code|16 | Text|code |1.“NATIVE“:Return the URL value of WeChat payment collection for parameter return, ask the merchant to convert it into QR code, generate the front interface of payment, and prompt the user to scan the code to pay; 2.“QUICK”:It's jump mode, open the front-end page provided by AllPay, which contains WeChat QR code. #### 6.Test account Please note that AliPay and TenPay transactions need to be tested with Chinese real-name certified accounts. All test transactions do not provide liquidation services. Please use a small amount of test. The following are the UnionPay channel test cards for testing only: ``` Credit Card:5200831111111113 Mobile:13552535506 CVN2:123 Exp Date:month 11 year 19 SMS Code on PC:111111 SMS Code on Mobile:123456 Credit Card:6226388000000095 Mobile:18100000000 CVN2:248 Exp Date:month 12 year 19 SMS Code on PC:111111 SMS Code on Mobile:123456 ``` #### 7.Technical support If you have problems with debugging, please contact us:support@allpayx.com