"GOOD_NAME": "Product name", "GOOD_QUANTITY": "5", "GOOD_CLASS": "Product type" }, { "GOOD_SUBJECT": "Product description", "GOOD_PRICE": "2.00", "GOOD_ID": "Product ID", "GOOD_SHOWURL": "WWW.****.COM", "GOOD_NAME": "Product name", "GOOD_QUANTITY": "5", "GOOD_CLASS": "Product type" } ] } Parameters for returning message Table 2.5 Returning parameter for scanned interface Parameters Parameter Name Type Parameter Description Sample RESULT Response code Object Response code of the interface. The sub-node of the node including: code. Please refer to appendix 5 for detailed info. information. Please refer to “2.6 Returning sample “for detailed info. CHANNEL_TYPE Payment channel Integer Please to appendix 2 for detailed info. 1 CHARGE_CODE Trading up serial number String Merchant trading up serial number Trading down serial number String Trading down serial number from SOUSHOU 1435736619488 Serial number of pay channel String serial number of pay channel(alipay, wechat pay...) MERCHANTPARA User String The user parameter is encoded 01000001
"GOOD_ID": "Product ID", "GOOD_PRICE": "2.00", "GOOD_SHOWURL": "WWW.****.COM" } ] } 3.5 Parameter of returning message Table 3.5 Returning parameter for scanning interface Parameter Parameter name Type Parameter Description Sample RESULT Response code Object The sub-node including: code, please refer to appendix 5 for detailed info. message Please refer to the sample in section 3.6 for detailed info. Trading down serial number String The transaction serial number returned by SOUSHOU 1435736619488 CHARGE_CODE Trading serial number String Merchants traded up serial number (need to be unique) MERCHANTPARA User parameters String User parameter is encoded by base64 and the interface return the data as returned. 01000001 BAR_CODE Payment links String Used to generate the QR code of the payment(alipay, WeChat the payment link of other bank payments. 3.6 Sample returning message JSON format { "ORDER_RESP": { "RESULT": { "CODE": "SUCCESS",
payment completion subOpenid Sub openid under subappid String If parameter can’t be empty,it is uniquely identify under the sub-merchant appid for user Yes CHARGE_CODE Trading serial number String Merchants traded up serial number (need to be unique) No NODIFY_URL Asynchronous notification address String The address that SOUSHOU can notify the merchant after a successful payment. Requirement for the format of the returning message: Json or is the default format when this parameter is not set. Currently supports the 3DES encryption to the content of the message. When the parameter is empty, will not do any encryption. Yes PAY_SUBJECT Payment description String Payment description No QR Code to pay GOODS_DETAIL Product information description List The description for the product which can contain multiple items. For node information, please refer to the appendix 1 for detailed info. Yes Please to “4.3 Sample for requesting message “fordetailed info. 4.3 Sample requesting message JSON format { "AMT": "0.1", "BUSI_ID": "0010000001",
"MERCHANTPARA": "111111111111111111111111", "CHARGE_CODE": "D3820833-F310-4658-BF98-52959454FCA0", "NODIFY_URL": "HTTP://221.12.11.172:8081/SOSOPAYWEB/SOSOPAYTEST", "GOODS_DETAIL": [ { "GOOD_NAME": "GOOD_CLASS": "GOOD_QUANTITY": "5", "GOOD_SUBJECT": "GOOD_ID": "GOOD_PRICE": "2.00", "GOOD_SHOWURL": "WWW.****.COM" }, { "GOOD_NAME": "GOOD_CLASS": "GOOD_QUANTITY": "5", "GOOD_SUBJECT": "GOOD_ID": "GOOD_PRICE": "2.00", "GOOD_SHOWURL": "WWW.****.COM" } ] } Parameter of returning message Table 5.4 Returning parameter for interface Parameter Parameter name Type Parameter Description Sample RESULT Response code Object The sub-node including: code, please refer to appendix 5 for detailed info. message Please refer to the sample in section 4.5 for detailed info.
Format for returning message: according ‘_type’ parameter to determine: if it is not specified, then default format is xml, and if it is set as “json”, then the returning message will be in json format. Table 6.1 Requesting parameters for interface Parameters Parameter Name Type Parameter Description Can be empty? Sample sign Result for signature String Sign=MD5(timestamp + Merchant Key When calculating the signature, please exclude the space and link breaks inside the bodyContent The Merchant Keys are allocated by SOUSHOU centrally No _type Format for the returning message String Requirement for the format of the returning message: Json or is the default format when this parameter is not set. Yes json encrypt Encryption algorithm String Currently can support DES encryption for the message content. The sequence of signing and encrypting algorithm is: signing then encryption. Encrypted messages must be encoded by BASE64. Yes 3DES busiCode Merchant code String Merchant code No 01000001 Parameters of requesting message Table 6.2 Requesting parameter for interface Parameter Parameter name Type Parameter Description Can be Sample BUSI_ID Merchant ID String Merchant ID is allocated centrally by SOUSHOU No 0010000001 OPER_ID Operator ID String Operator ID No Operator01 DEV_ID Device String Device number No Cash Register
number 01 MERCHANTPARA User parameter String The user parameter is encoded using base64, and the interface will return it without any modification. Yes 01000001 REGISTER_ID Store code String Store code Yes 02016 AMT The transaction amount String Unit is Yuan No 158.00 CHANNEL_TYPE Payment Channel Integer Please to appendix 2 for detailed info. No 1 TIME_EXPIRE Expired time Integer Unit is must be equal to or bigger than 300 Yes 300 CHARGE_CODE Trading serial number String Merchants traded up serial number (need to be unique) No SCENE_INFO Trading scene String This field is used to upload the scene information of Payment. There are altogether 3 scenes for H5 Payment. Please use corresponding scene. H5 Payment is not suggested to be used on App. It's better to use app payment For scene 1 and scene 2. {"h5_info": // fixed key name {"type": "", //scene type "app_name": "", // "bundle_id": "" //bundle_id } } App {"h5_info": //fixed key name {"type": "", //scene type "app_name": "", //application name "package_name": "" //package name } } No //IOS App {"h5_info": "King of //Android App {"h5_info": "King of //WAP {"h5_info": "Tecent Top up"}}
Parameter of the returning message Table 9.2 The returning parameters for querying interface Parameter Parameter name Type Parameter description Sample RESULT Response code Object The sub-node including: code, please refer to appendix 5 for detailed info. message Please to sample returning message for detailed info. BUSI_ID Merchant ID String Merchant ID is assigned by SOUSHOU 0010000001 OPER_ID Operator ID String Operator ID oper 01 DEV_ID Device number String Device number oper 01 MERCHANTPARA User parameter String User parameter is encoded by base64 and the interface return the data as returned. 01000001 AMT Transaction amount String Unit is Cent 15800 CHANNEL_TYPE Payment channel Integer Please refer to appendix 2 for detailed info. 1 CHARGE_CODE Transaction serial number String Merchant trading up serial number PAY_SUBJECT Payment String Payment information description QR code products STATE Order status Integer Please to appendix 4 for detailed info. 1 GOODS_DETAIL Product details List Product informationfor the transaction. The message can contain multiple products. Please refer to appendix 1 for detailed node information. Please refer to sample for detailed info. BEGIN_TIME The transaction begin date Date The transaction begin date 2015-10-14 04:43:14 END_TIME The transaction end date Date The transaction end date 2015-10-14 04:43:14 REGISTER_ID Store id String Store id 02016 FUND_BILL_LIST Payment channels information List The payment channel information involved in the transaction, it can contain the Please refer to sample for detailed info.
Revocation signature ‘sign’ is different from other interfaces. sign=MD5(timestamp+ Merchant Key+ incoming parameter):timestamp Incoming chargeCode={chargeCode}&busiCode={busiCode} Do revocation while parameter opType is equals ‘ACO’,and do revocation real-time while parameter opType is null or not equals ‘ACO’ Format for returning to ‘_type’ to determine the format, default is XML if no ‘_type’ is set, and if it is set as “json”, then the message format is json. Parameters of the returning message Table 11.2 The returning parameter for revoking interface Parameter Parameter name Type Parameter description Sample RESULT Response code Object The sub-node including: code, please refer to appendix 5 for detailed info. message 1 Sample returning message JSON format { "CANCELTRADE_RESP": { "RESULT": { "CODE": "SUCCESS", "INFO": "Revocation is successful" } } }
Appendix 1 Definition of ProductInformation Table 9.1 Product information GOODS_DETAIL Parameter Parameter name Type Parameter Description Can be empty? Sample GOOD_ID Product ID String Product ID No 2010 GOOD_NAME Product name String Product name No IPhone GOOD_CLASS Classification of products String Device code No Mobile phone GOOD_PRICE Amount of the product String Unit is Yuan No 4999.00 GOOD_SUBJECT Product description String Please refer to appendix 2 for detailed info. No Digital products The number of products String Need to be unique No 1 Exhibition address for the product String The address of the goods Yes Appendix 2 Payment Channel Data Dictionary (CHANNEL_TYPE) Table 9.2 Payment channel CHANNEL_TYPE Code of payment code Payment channel 0 when Customer’s QR code is scanned by merchant to pay,we will automatic determination channels if set 0. 1 Alipay 2 WeChat pay 3 China Merchants Bank 5 China Construction Bank 9 Agricultural Bank 10 Shanghai Pudong Development Bank 24 Baidu wallet 27 Telecom best payment