Login expired. Please log in again.

Feedback

0/300

Feedback

Submitted successfully

ok

Feedback

Network exception, please try again later

ok

APP Signing API

Latest update time:2024.03.18 Release notes

The merchant backend obtains a signing session ID by requesting this interface, and then calls the signing SDK to redirect to WeChat signing page.

Step 1:Obtaining Signing Session ID API

1. API Intro

Applicable object: Common mode Institutional mode

Request Url:https: //apihk.mch.weixin.qq.com/v3/global/papay/contracts/app-pre-entrust-sign

Request method: POST


Pathparameter is a path parameter.
Queryparameter needs to be passed in the request URL.
Bodyparameter needs to be passed in the request JSON.

UML

2. Request Parameters

Name Variable Name Type Required Description
App ID appid string[1, 32] Yes Body Appid bound to the merchant ID
Note: Only forCommon mode
Example: wxcbda96de0b165486
Sub-merchant ID sub_mchid string[1, 32] Yes Body Sub-merchant ID allocated by WeChat Pay
Note: Only forInstitutional mode
Example: 10000097
App ID of the service provider sp_appid string[1, 32] Yes Body Appid bound to the service provider
Note: Only forInstitutional mode
Example: wxcbda96de0b165486
App ID of the sub-merchant sub_appid string[1, 32] No Body Appid bound to the sub-merchant ID for initiating signing
Example: wxcbda96de0b165484
Template ID plan_id int Yes Body Agreement template ID, which is generated by WeChat Pay when the merchant submits a deduction permission application to WeChat Pay
Example: 123
Signed contract No. out_contract_code string[1, 32] Yes Body The signed contract No. at the merchant side, generated by the merchant and must be unique at the merchant side
Example: 100001256
Displayed user account name user_display_name string[1, 32] Yes Body The name of the signing user, displayed on the page; urlencode is not required for the value, and the parameter value does not support the non-3-byte coded characters of UTF8, e.g., emoji, so WeChat nickname cannot be passed to this field.
Example: Zhang San
Signing success notification URL success_notify_url string[1, 256] Yes Body Callback notification URL starting with HTTPS; urlencode is not required for the value
Example: https://yoursite.com
User ID under the merchant’s appid openid string[1, 128] No Body Openid of the user under the merchant’s appid
For details, see Obtaining openid
Example: ouFhd5X9s9WteC3eWRjXV3lea123
Client IP user_client_ip string[1, 32] No Body Specifies the the IP of consumer
Example: 119.145.83.6
Expire time of signing ID expired_time string[1, 32] Yes Body Specifies the expire time of signing url. Time difference between expired_time and request time should be less than 10 minutes and bigger than 5 minutes for mobile h5 and PC web signing scenarios, while it icould be less than 2 hours and bigger than 5 minutes for other scenarios. If this value is not set, the validity of signing url is 10 minutes in default for mobile h5 and PC web signing scenarios, while it is 2 hours for other signing scenarios. This filed is in RFC3339 format. For example, 2018-06-08T10:34:56+08:00 represents BJT 10:34:56 June 8, 2018.
Example: 2021-11-20T13:29:35+08:00

Example:

{
 "appid": "wxcbda96de0b165486",
  "expired_time": "2021-11-20T13:29:35+08:00",
  "openid": "ouFhd5X9s9WteC3eWRjXV3lea123",
  "out_contract_code": "100001256",
  "plan_id": 123,
  "return_url": "https://yoursite.com",
  "success_notify_url": "https://yoursite.com",
  "user_display_name": "Zhang San"
}
{
  "expired_time": "2021-11-20T13:29:35+08:00",
  "openid": "ouFhd5X9s9WteC3eWRjXV3lea123",
  "out_contract_code": "100001256",
  "plan_id": 123,
  "return_url": "https://yoursite.com",
  "sp_appid": "wxcbda96de0b165486",
  "sub_appid": "wxcbda96de0b165484",
  "sub_mchid": "10000097",
  "success_notify_url": "https://yoursite.com",
  "user_display_name": "Zhang San"
}

3. Response Parameters

Name Variable Name Type Required Description
Auto-debit signing session ID session_id string[1,128] Yes Auto-debit signing session ID returned by WeChat
Example: 201710180325670965

Example:

				{
  "session_id": "201710180325670965"
}

4. Error Codes

Error Codes Error Message Description Solution
403 CONTRACT_EXISTED The contract is already signed The user has already sign the contract. If another contract is required to sign, please change the out_contract_code and retry.
403 CONTRACT_NOT_EXIST The contract cannot be found Please check whether the request contract is correct or whether it is terminated.
400 PARAM_ERROR Parameter error Please check the request parameter format.
500 SYSTEMERROR System error Please try the request again


Step 2:Obtaining Signing Session ID API

Brief Introduction

Please refer to the following for the SDK description:

Android openSDK download (version >=5.3.1): Android resources

Android SDK guidelines: openSDK guidelines

iOS openSDK download (version >=1.8.4): iOS resources

iOS SDK guidelines: openSDK guidelines

API Used: WXOpenBusinessView

Interface compatibility:

● Compatibility with iOS: For Weixin version 7.0.3 or above, the developer can initiate Weixin mini-programs through this openSDK interface; for Weixin version below 7.0.3, the developer can jump to Weixin through this openSDK interface, but cannot initiate Weixin mini-programs. In this case, Weixin will prompt the user that the application request is invalid or the Weixin version is too low.
● Compatibility with Android: For Weixin version 7.0.3 or above, the developer can initiate Weixin mini-programs through this openSDK interface; for Weixin version below 7.0.3, the developer can neither jump to Weixin nor initiate Weixin mini-programs through this openSDK interface. In this case, the developer needs to prompt the user to update the Weixin.


Request Parameters

Name Variable Name Type Required Description
WeChat Redirecting Type businessType string[1,32] Yes Fixed value: wxpayOverseaEntrustAuthorization
Example: wxpayOverseaEntrustAuthorization
Pre-sign ID sessionId string[1,128] Yes Session ID, got from pre-sign request
Example: 20211115171992080208

Example:

WXOpenBusinessViewReq *req = [WXOpenBusinessViewReq object];
req.businessType = @"wxpayOverseaEntrustAuthorization"; // Fixed value
req.query = @"sessionId=20211115171992080208"; // The session ID got from pre-sign response
req.extInfo = @"{\"miniProgramType\":0}"; // Fixed value
[WXApi sendReq:req];
// Sign
int wxSdkVersion = api.getWXAppSupportAPI();
if (wxSdkVersion >= Build.OPEN_BUSINESS_VIEW_SDK_INT) {
WXOpenBusinessView.Req req = new WXOpenBusinessView.Req();
req.businessType = "wxpayOverseaEntrustAuthorization"; // Fixed value
String SesssionId = "20211115171992080208"; // The session ID got from pre-sign response
req.query = "sessionId=" + SesssionId; // Configure parameter
req.extInfo = "{\"miniProgramType\": 0}"; // Fixed value
Boolean ret = api.sendReq(req);
} else {
// Consumer need to update the WeChat version to complete signing
}
 

/******** Sample code for receiving signing success notification by onResp of WXEntryActivity*******/
@Override
public void onResp(BaseResp r) {
if (r.getType() == ConstantsAPI.COMMAND_OPEN_BUSINESS_VIEW) {
WXOpenBusinessView.Resp launchMiniProgramResp = (WXOpenBusinessView.Resp) r;
String text = String.format("nextMsg=%snerrStr=%snbusinessType=%s",
resp.extMsg, resp.errStr, resp.businessType);
Toast.makeText(this, text, Toast.LENGTH_lONG).show();}
}
    Page navigation

Release notes

close
V1.0
2021.12.08
1. APP Signing – To Be Determined API released online

About  WeChat  Pay

Powered By Tencent & Tenpay Copyright©

2005-2024 Tenpay All Rights Reserved.

Contact Us
Wechat Pay Global

WeChat Pay Global

置顶