V2MerchantDirectWechatSignRequestDemo.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. <?php
  2. /**
  3. * 微信特约商户进件 - 示例
  4. *
  5. * @author sdk-generator
  6. * @Description
  7. */
  8. namespace BsPayDemo;
  9. // 1. 资源及配置加载
  10. require_once dirname(__FILE__) . "/loader.php";
  11. require_once dirname(__FILE__). "/../BsPaySdk/request/V2MerchantDirectWechatSignRequest.php";
  12. use BsPaySdk\core\BsPayClient;
  13. use BsPaySdk\request\V2MerchantDirectWechatSignRequest;
  14. // 2.组装请求参数
  15. $request = new V2MerchantDirectWechatSignRequest();
  16. // 请求流水号
  17. $request->setReqSeqId(date("YmdHis").mt_rand());
  18. // 请求日期
  19. $request->setReqDate(date("Ymd"));
  20. // 商户汇付Id
  21. $request->setHuifuId("6666000003134509");
  22. // 渠道商汇付Id
  23. $request->setUpperHuifuId("6666000003134508");
  24. // 开发者的应用ID
  25. $request->setAppId("20200506780602902");
  26. // 商户号
  27. $request->setMchId("748851385");
  28. // 经营者/法人是否为受益人
  29. $request->setOwner("Y");
  30. // 超级管理员信息
  31. $request->setContactInfo(getContactInfo());
  32. // 经营场景类型
  33. $request->setSalesScenesType("SALES_SCENES_STORE,SALES_SCENES_MP,SALES_SCENES_MINI_PROGRAM,SALES_SCENES_WEB,SALES_SCENES_APP,SALES_SCENES_WEWORK");
  34. // 经营场景
  35. $request->setSalesInfo(getSalesInfo());
  36. // 结算信息
  37. $request->setSettlementInfo(getSettlementInfo());
  38. // 设置非必填字段
  39. $extendInfoMap = getExtendInfos();
  40. $request->setExtendInfo($extendInfoMap);
  41. // 3. 发起API调用
  42. $client = new BsPayClient();
  43. $result = $client->postRequest($request);
  44. if (!$result || $result->isError()) { //失败处理
  45. var_dump($result -> getErrorInfo());
  46. } else { //成功处理
  47. var_dump($result);
  48. }
  49. /**
  50. * 非必填字段
  51. *
  52. */
  53. function getExtendInfos() {
  54. // 设置非必填字段
  55. $extendInfoMap = array();
  56. // 服务商微信公众号APPID对应密钥
  57. $extendInfoMap["wx_woa_secret"]= "1234567890";
  58. // 公司类型
  59. $extendInfoMap["ent_type"]= "2";
  60. // 登记证书
  61. $extendInfoMap["certificate_info"]= getCertificateInfo();
  62. // 最终受益人信息
  63. $extendInfoMap["ubo_info"]= getUboInfo();
  64. // 银行账户信息
  65. $extendInfoMap["bank_account_info"]= getBankAccountInfo();
  66. // 补充说明
  67. $extendInfoMap["business_addition_msg"]= "补充说明";
  68. // 文件列表
  69. $extendInfoMap["file_list"]= getFileList();
  70. return $extendInfoMap;
  71. }
  72. function getContactInfo() {
  73. $dto = array();
  74. // 超级管理员姓名
  75. $dto["contact_name"] = "超级管理员姓名7586";
  76. // 超级管理员证件号码&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、可传身份证、来往内地通行证、来往大陆通行证、护照等证件号码。
  77. $dto["contact_cert_no"] = "530102198206242725";
  78. // 超级管理员微信openid&lt;font color&#x3D;&quot;green&quot;&gt;示例值:oGhiSxIAPtEnPfe9Xo000000A&lt;/font&gt;&lt;br/&gt;1、“超级管理员身份证件号码”与“超级管理员微信openid”,二选一必填。&lt;br/&gt;2、超级管理员签约时,校验微信号是否与该微信openid一致。
  79. $dto["openid"] = "openid";
  80. // 超级管理员手机号
  81. $dto["contact_mobile_no"] = "13778851762";
  82. // 超级管理员电子邮箱
  83. $dto["contact_email"] = "89007865@qq.com";
  84. // 超级管理员证件类型
  85. $dto["cert_type"] = "00";
  86. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  87. }
  88. function getFileList() {
  89. $dto = array();
  90. // 文件类型
  91. $dto["file_type"] = "F85";
  92. // 文件jfileID
  93. $dto["file_id"] = "42204258-967e-373c-88d2-1afa4c7bb8ef";
  94. // 文件名称
  95. $dto["file_name"] = "微信直连额外补充材料一";
  96. $dtoList = array();
  97. array_push($dtoList, $dto);
  98. return json_encode($dtoList,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  99. }
  100. function getCertificateInfo() {
  101. $dto = array();
  102. // 登记证书类型
  103. $dto["cert_type"] = "所有场景类型";
  104. // 证书号
  105. $dto["cert_no"] = "证书号";
  106. // 证书商户名称
  107. $dto["cert_mer_name"] = "证书商户名称";
  108. // 注册地址
  109. $dto["reg_detail"] = "注册地址";
  110. // 法人姓名
  111. $dto["legal_name"] = "法人姓名";
  112. // 证书有效期类型
  113. $dto["cert_validity_type"] = "1";
  114. // 证书有效期开始日期
  115. $dto["cert_begin_date"] = "20200420";
  116. // 文件列表
  117. // $dto["file_list"] = getFileList();
  118. // 证书有效期截止日期
  119. $dto["cert_end_date"] = "20400420";
  120. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  121. }
  122. function getUboInfo() {
  123. $dto = array();
  124. // 证件类型
  125. $dto["cert_type"] = "00";
  126. // 证件号码
  127. $dto["cert_no"] = "530102198206242725";
  128. // 姓名
  129. $dto["name"] = "姓名";
  130. // 证件有效类型
  131. $dto["cert_validity_type"] = "1";
  132. // 证件有效期开始日期
  133. $dto["cert_begin_date"] = "20200420";
  134. // 文件列表
  135. $dto["file_list"] = getFileList();
  136. // 证件有效期截止日期
  137. $dto["cert_end_date"] = "20400420";
  138. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  139. }
  140. function getSalesInfo() {
  141. $dto = array();
  142. // 服务商公众号APPID公众号场景必传(与mp_sub_appid二选一) 。可填写当前服务商商户号已绑定的公众号APPID。&lt;font color&#x3D;&quot;green&quot;&gt;示例值:wx5934540532 &lt;/font&gt;
  143. $dto["mp_appid"] = "服务商公众号APPID";
  144. // 商家公众号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用于数 据统计,营销等业务场景 。
  145. $dto["mp_sub_appid"] = "商家公众号APPID";
  146. // 服务商小程序APPID小程序场景必传(与mmini_program_sub_appid二选一)。 可填写当前服务商商户号已绑定的小程序APPID。&lt;br/&gt;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:wx852a790f100000fe&lt;/font&gt;
  147. $dto["mini_program_appid"] = "服务商小程序APPID";
  148. // 商家小程序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用于数 据统计,营销等业务场景。
  149. $dto["mini_program_sub_appid"] = "商家小程序APPID";
  150. // 服务商应用APPIDAPP场景必传(与 app_sub_appid 二选一)。&lt;font color&#x3D;&quot;green&quot;&gt;示例值:wx852a790f100000fe&lt;/font&gt;&lt;br/&gt; 可填写当前服务商商户号已绑定的应用APPID。
  151. $dto["app_appid"] = "服务商应用APPID";
  152. // 商家应用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用于数 据统计,营销等业务场景。
  153. $dto["app_sub_appid"] = "商家应用APPID";
  154. // 文件列表
  155. $dto["file_list"] = getFileList();
  156. // 门店名称
  157. $dto["biz_store_name"] = "门店名称";
  158. // 门店省市编码
  159. $dto["biz_address_code"] = "门店省市编码";
  160. // 门店地址
  161. $dto["biz_store_address"] = "门店地址";
  162. // 线下场所对应的商家APPID
  163. $dto["biz_sub_appid"] = "线下场所对应的商家APPID";
  164. // 互联网网站域名
  165. $dto["domain"] = "互联网网站域名";
  166. // 互联网网站对应的商家APPID
  167. $dto["web_appid"] = "互联网网站对应的商家APPID";
  168. // 商家企业微信CorpID
  169. $dto["sub_corp_id"] = "商家企业微信CorpID";
  170. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  171. }
  172. function getSettlementInfo() {
  173. $dto = array();
  174. // 入驻结算规则ID
  175. $dto["settlement_id"] = "716";
  176. // 所属行业
  177. $dto["qualification_type"] = "餐饮";
  178. // 文件列表
  179. $dto["file_list"] = getFileList();
  180. // 优惠费率活动ID
  181. $dto["activities_id"] = "20191030111cff5b5e";
  182. // 优惠费率活动值
  183. $dto["activities_rate"] = "0.60";
  184. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  185. }
  186. function getBankAccountInfo() {
  187. $dto = array();
  188. // 账户类型
  189. $dto["bank_account_type"] = "BANK_ACCOUNT_TYPE_CORPORATE";
  190. // 开户名称
  191. $dto["account_name"] = "门店名称";
  192. // 开户银行
  193. $dto["account_bank"] = "中国农业银行";
  194. // 开户银行省市编码
  195. $dto["bank_address_code"] = "01030000";
  196. // 开户银行联行号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;
  197. $dto["bank_branch_id"] = "102110001296";
  198. // 开户银行全称(含支行)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)。
  199. $dto["bank_name"] = "102110001296";
  200. // 银行账号
  201. $dto["account_number"] = "102110001296";
  202. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  203. }