Skip to content

直连商户模式小程序场景预签约

直连商户从商户小程序拉起微信签约小程序发起签约前,需先后台调用预签约接口完成预签约,获取预签约ID,再拉起微信签约小程序;用户完成签约授权后,再返回商户小程序。 注意 用户在微信的页面中完成免密支付签约后,微信会同时将签约信息通过异步通知的方式通知给商户后台。 如果用户放弃签约或签约失败则不通知; 商户获取的签约会话有效期为2小时。

请求参数类型描述
jsonobject声明请求的JSON数据结构
appidstring商户AppID
service_idnumber免密支付服务ID
out_contract_codestring商户签约协议号
notify_urlstring回调通知地址
contract_display_accountstring用户账户展示名称
openidstring用户标识
php
$instance->v3->passwordExemptContract->contracts->normal->preEntrustSign->miniProgram->postAsync([
  'json' => [
    'appid'                    => 'wxd678efh567hg6787',
    'service_id'               => 12535,
    'out_contract_code'        => 'wxwtdk20200910100000',
    'notify_url'               => 'https://yourapp.com/notify',
    'contract_display_account' => '微信代扣用户A',
    'openid'                   => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
  ],
])
->then(static function(\Psr\Http\Message\ResponseInterface $response) {
  print_r(json_decode((string) $response->getBody(), true));
})
->wait();
php
$instance->chain('v3/password-exempt-contract/contracts/normal/pre-entrust-sign/mini-program')->postAsync([
  'json' => [
    'appid'                    => 'wxd678efh567hg6787',
    'service_id'               => 12535,
    'out_contract_code'        => 'wxwtdk20200910100000',
    'notify_url'               => 'https://yourapp.com/notify',
    'contract_display_account' => '微信代扣用户A',
    'openid'                   => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
  ],
])
->then(static function(\Psr\Http\Message\ResponseInterface $response) {
  print_r(json_decode((string) $response->getBody(), true));
})
->wait();
php
$instance['v3/password-exempt-contract/contracts/normal/pre-entrust-sign/mini-program']->postAsync([
  'json' => [
    'appid'                    => 'wxd678efh567hg6787',
    'service_id'               => 12535,
    'out_contract_code'        => 'wxwtdk20200910100000',
    'notify_url'               => 'https://yourapp.com/notify',
    'contract_display_account' => '微信代扣用户A',
    'openid'                   => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
  ],
])
->then(static function(\Psr\Http\Message\ResponseInterface $response) {
  print_r(json_decode((string) $response->getBody(), true));
})
->wait();
php
$response = $instance->v3->passwordExemptContract->contracts->normal->preEntrustSign->miniProgram->post([
  'json' => [
    'appid'                    => 'wxd678efh567hg6787',
    'service_id'               => 12535,
    'out_contract_code'        => 'wxwtdk20200910100000',
    'notify_url'               => 'https://yourapp.com/notify',
    'contract_display_account' => '微信代扣用户A',
    'openid'                   => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
  ],
]);
print_r(json_decode((string) $response->getBody(), true));
php
$response = $instance->chain('v3/password-exempt-contract/contracts/normal/pre-entrust-sign/mini-program')->post([
  'json' => [
    'appid'                    => 'wxd678efh567hg6787',
    'service_id'               => 12535,
    'out_contract_code'        => 'wxwtdk20200910100000',
    'notify_url'               => 'https://yourapp.com/notify',
    'contract_display_account' => '微信代扣用户A',
    'openid'                   => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
  ],
]);
print_r(json_decode((string) $response->getBody(), true));
php
$response = $instance['v3/password-exempt-contract/contracts/normal/pre-entrust-sign/mini-program']->post([
  'json' => [
    'appid'                    => 'wxd678efh567hg6787',
    'service_id'               => 12535,
    'out_contract_code'        => 'wxwtdk20200910100000',
    'notify_url'               => 'https://yourapp.com/notify',
    'contract_display_account' => '微信代扣用户A',
    'openid'                   => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
  ],
]);
print_r(json_decode((string) $response->getBody(), true));
返回字典类型描述
pre_entrustweb_idstring预签约ID
mchidstring商户号
service_idnumber免密支付服务ID
out_contract_codestring商户签约协议号
sign_mp_appidstring跳转签约的小程序AppID
sign_mp_pathstring跳转签约的小程序路径

参阅 官方文档

Published on the GitHub by TheNorthMemory