dlh_test_server/vendor/hf/BsPayDemo/V2MerchantDirectWechatSignRequestDemo.php
2024-11-04 15:46:19 +08:00

227 lines
10 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* 微信特约商户进件 - 示例
*
* @author sdk-generator
* @Description
*/
namespace BsPayDemo;
// 1. 资源及配置加载
require_once dirname(__FILE__) . "/loader.php";
require_once dirname(__FILE__). "/../BsPaySdk/request/V2MerchantDirectWechatSignRequest.php";
use BsPaySdk\core\BsPayClient;
use BsPaySdk\request\V2MerchantDirectWechatSignRequest;
// 2.组装请求参数
$request = new V2MerchantDirectWechatSignRequest();
// 请求流水号
$request->setReqSeqId(date("YmdHis").mt_rand());
// 请求日期
$request->setReqDate(date("Ymd"));
// 商户汇付Id
$request->setHuifuId("6666000003134509");
// 渠道商汇付Id
$request->setUpperHuifuId("6666000003134508");
// 开发者的应用ID
$request->setAppId("20200506780602902");
// 商户号
$request->setMchId("748851385");
// 经营者/法人是否为受益人
$request->setOwner("Y");
// 超级管理员信息
$request->setContactInfo(getContactInfo());
// 经营场景类型
$request->setSalesScenesType("SALES_SCENES_STORE,SALES_SCENES_MP,SALES_SCENES_MINI_PROGRAM,SALES_SCENES_WEB,SALES_SCENES_APP,SALES_SCENES_WEWORK");
// 经营场景
$request->setSalesInfo(getSalesInfo());
// 结算信息
$request->setSettlementInfo(getSettlementInfo());
// 设置非必填字段
$extendInfoMap = getExtendInfos();
$request->setExtendInfo($extendInfoMap);
// 3. 发起API调用
$client = new BsPayClient();
$result = $client->postRequest($request);
if (!$result || $result->isError()) { //失败处理
var_dump($result -> getErrorInfo());
} else { //成功处理
var_dump($result);
}
/**
* 非必填字段
*
*/
function getExtendInfos() {
// 设置非必填字段
$extendInfoMap = array();
// 服务商微信公众号APPID对应密钥
$extendInfoMap["wx_woa_secret"]= "1234567890";
// 公司类型
$extendInfoMap["ent_type"]= "2";
// 登记证书
$extendInfoMap["certificate_info"]= getCertificateInfo();
// 最终受益人信息
$extendInfoMap["ubo_info"]= getUboInfo();
// 银行账户信息
$extendInfoMap["bank_account_info"]= getBankAccountInfo();
// 补充说明
$extendInfoMap["business_addition_msg"]= "补充说明";
// 文件列表
$extendInfoMap["file_list"]= getFileList();
return $extendInfoMap;
}
function getContactInfo() {
$dto = array();
// 超级管理员姓名
$dto["contact_name"] = "超级管理员姓名7586";
// 超级管理员证件号码&lt;font color&#x3D;&quot;green&quot;&gt;示例值:320926198512025834&lt;/font&gt;&lt;br/&gt;1、“超级管理员证件号码”与“超级管理员微信openid”,二选一必填。&lt;br/&gt;2、超级管理员签约时,校验微信号绑定的银行卡实名信息,是否与该证件号码一致。&lt;br/&gt;3、可传身份证、来往内地通行证、来往大陆通行证、护照等证件号码。
$dto["contact_cert_no"] = "530102198206242725";
// 超级管理员微信openid&lt;font color&#x3D;&quot;green&quot;&gt;示例值:oGhiSxIAPtEnPfe9Xo000000A&lt;/font&gt;&lt;br/&gt;1、“超级管理员身份证件号码”与“超级管理员微信openid”,二选一必填。&lt;br/&gt;2、超级管理员签约时,校验微信号是否与该微信openid一致。
$dto["openid"] = "openid";
// 超级管理员手机号
$dto["contact_mobile_no"] = "13778851762";
// 超级管理员电子邮箱
$dto["contact_email"] = "89007865@qq.com";
// 超级管理员证件类型
$dto["cert_type"] = "00";
return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
}
function getFileList() {
$dto = array();
// 文件类型
$dto["file_type"] = "F85";
// 文件jfileID
$dto["file_id"] = "42204258-967e-373c-88d2-1afa4c7bb8ef";
// 文件名称
$dto["file_name"] = "微信直连额外补充材料一";
$dtoList = array();
array_push($dtoList, $dto);
return json_encode($dtoList,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
}
function getCertificateInfo() {
$dto = array();
// 登记证书类型
$dto["cert_type"] = "所有场景类型";
// 证书号
$dto["cert_no"] = "证书号";
// 证书商户名称
$dto["cert_mer_name"] = "证书商户名称";
// 注册地址
$dto["reg_detail"] = "注册地址";
// 法人姓名
$dto["legal_name"] = "法人姓名";
// 证书有效期类型
$dto["cert_validity_type"] = "1";
// 证书有效期开始日期
$dto["cert_begin_date"] = "20200420";
// 文件列表
// $dto["file_list"] = getFileList();
// 证书有效期截止日期
$dto["cert_end_date"] = "20400420";
return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
}
function getUboInfo() {
$dto = array();
// 证件类型
$dto["cert_type"] = "00";
// 证件号码
$dto["cert_no"] = "530102198206242725";
// 姓名
$dto["name"] = "姓名";
// 证件有效类型
$dto["cert_validity_type"] = "1";
// 证件有效期开始日期
$dto["cert_begin_date"] = "20200420";
// 文件列表
$dto["file_list"] = getFileList();
// 证件有效期截止日期
$dto["cert_end_date"] = "20400420";
return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
}
function getSalesInfo() {
$dto = array();
// 服务商公众号APPID公众号场景必传(与mp_sub_appid二选一) 。可填写当前服务商商户号已绑定的公众号APPID。&lt;font color&#x3D;&quot;green&quot;&gt;示例值:wx5934540532 &lt;/font&gt;
$dto["mp_appid"] = "服务商公众号APPID";
// 商家公众号APPID公众号场景必传(与mp_appid二选一)。&lt;font color&#x3D;&quot;green&quot;&gt;示例值:wx5934540532 &lt;/font&gt; &lt;br/&gt;1、可填写与商家主体一致且已认证的公众号APPID,需是 已认证的服务号、政府或媒体类型的订阅号。&lt;br/&gt;2、审核通过后,系统将发起特约商家商户号与该AppID的 绑定(即配置为sub_appid),服务商随后可在发起支付时 选择传入该appid,以完成支付,并获取sub_openid用于数 据统计,营销等业务场景 。
$dto["mp_sub_appid"] = "商家公众号APPID";
// 服务商小程序APPID小程序场景必传(与mmini_program_sub_appid二选一)。 可填写当前服务商商户号已绑定的小程序APPID。&lt;br/&gt;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:wx852a790f100000fe&lt;/font&gt;
$dto["mini_program_appid"] = "服务商小程序APPID";
// 商家小程序APPID小程序场景必传(与mini_program_appid二选一),&lt;font color&#x3D;&quot;green&quot;&gt;示例值:wx852a790f100000fe&lt;/font&gt; &lt;br/&gt;1、可填写与商家主体一致且已认证的小程序APPID,需是 已认证的小程序。&lt;br/&gt; 2、审核通过后,系统将发起特约商家商户号与该AppID的 绑定(即配置为sub_appid),服务商随后可在发起支付时 选择传入该appid,以完成支付,并获取sub_openid用于数 据统计,营销等业务场景。
$dto["mini_program_sub_appid"] = "商家小程序APPID";
// 服务商应用APPIDAPP场景必传(与 app_sub_appid 二选一)。&lt;font color&#x3D;&quot;green&quot;&gt;示例值:wx852a790f100000fe&lt;/font&gt;&lt;br/&gt; 可填写当前服务商商户号已绑定的应用APPID。
$dto["app_appid"] = "服务商应用APPID";
// 商家应用APPIDAPP场景必传(与app_appid二选一);&lt;font color&#x3D;&quot;green&quot;&gt;示例值:wx852a790f100000fe&lt;/font&gt; &lt;br/&gt;1、可填写与商家主体一致且已认证的应用APPID,需是已 认证的APP。 &lt;br/&gt;2、审核通过后,系统将发起特约商家商户号与该AppID的 绑定(即配置为sub_appid),服务商随后可在发起支付时 选择传入该appid,以完成支付,并获取sub_openid用于数 据统计,营销等业务场景。
$dto["app_sub_appid"] = "商家应用APPID";
// 文件列表
$dto["file_list"] = getFileList();
// 门店名称
$dto["biz_store_name"] = "门店名称";
// 门店省市编码
$dto["biz_address_code"] = "门店省市编码";
// 门店地址
$dto["biz_store_address"] = "门店地址";
// 线下场所对应的商家APPID
$dto["biz_sub_appid"] = "线下场所对应的商家APPID";
// 互联网网站域名
$dto["domain"] = "互联网网站域名";
// 互联网网站对应的商家APPID
$dto["web_appid"] = "互联网网站对应的商家APPID";
// 商家企业微信CorpID
$dto["sub_corp_id"] = "商家企业微信CorpID";
return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
}
function getSettlementInfo() {
$dto = array();
// 入驻结算规则ID
$dto["settlement_id"] = "716";
// 所属行业
$dto["qualification_type"] = "餐饮";
// 文件列表
$dto["file_list"] = getFileList();
// 优惠费率活动ID
$dto["activities_id"] = "20191030111cff5b5e";
// 优惠费率活动值
$dto["activities_rate"] = "0.60";
return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
}
function getBankAccountInfo() {
$dto = array();
// 账户类型
$dto["bank_account_type"] = "BANK_ACCOUNT_TYPE_CORPORATE";
// 开户名称
$dto["account_name"] = "门店名称";
// 开户银行
$dto["account_bank"] = "中国农业银行";
// 开户银行省市编码
$dto["bank_address_code"] = "01030000";
// 开户银行联行号1、17家直连银行无需填写,如为其他银行,则开户银行全称(含支行)和开户银行联行号二选一。&lt;br/&gt;2、详细参见[开户银行全称(含支行)对照表](https://pay.weixin.qq.com/wiki/doc/apiv3/terms_definition/chapter1_1_3.shtml#part-6)。&lt;font color&#x3D;&quot;green&quot;&gt;示例值:102100020270&lt;/font&gt;
$dto["bank_branch_id"] = "102110001296";
// 开户银行全称(含支行)1、17家直连银行无需填写,如为其他银行,则开户银行全称(含支行)和 开户银行联行号二选一。&lt;br/&gt;2、需填写银行全称,&lt;font color&#x3D;&quot;green&quot;&gt;示例值:中国工商银行北京海运仓支行&lt;/font&gt;,详细参见[开户银行全称(含支行)对照表](https://pay.weixin.qq.com/wiki/doc/apiv3/terms_definition/chapter1_1_3.shtml#part-6)。
$dto["bank_name"] = "102110001296";
// 银行账号
$dto["account_number"] = "102110001296";
return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
}