当前位置: 首页 > news >正文

上海外贸网站建设科技成就

上海外贸网站建设,科技成就,免费响应式网站建设,电子书制作公司网站有道无术#xff0c;术尚可求#xff0c;有术无道#xff0c;止于术。 文章目录前言1. 环境搭建2. 特约商户进件3. 统一下单总结前言 在上篇文档中#xff0c;我们做好了接入前准备工作#xff0c;接下来使用开源框架集成服务商相关API。 一个简单的支付系统完成支付流程… 有道无术术尚可求有术无道止于术。 文章目录前言1. 环境搭建2. 特约商户进件3. 统一下单总结前言 在上篇文档中我们做好了接入前准备工作接下来使用开源框架集成服务商相关API。 一个简单的支付系统完成支付流程图如下所示 1. 环境搭建 引入开源微信支付框架。 dependencygroupIdcom.github.binarywang/groupIdartifactIdwx-java-pay-spring-boot-starter/artifactIdversion4.4.8.B/version/dependency配置上篇文档中我们获取到的参数、秘钥、证书。 wx:pay:appId: wx7xxxxx # 服务商应用ID公众号mchId: xxxxx # 服务商收款账号apiV3Key: UDuLFDcmy5Eb6o0xxxxx # 服务商API V3密钥certSerialNo: 34345964330B66427E0D3D2882xxxxx # 服务商商户证书序列privateKeyPath: classpath:cert/apiclient_key.pem # 服务商apiclient_key.pem证书文件的绝对路径或者以classpath:开头的类路径privateCertPath: classpath:cert/apiclient_cert.pem # 服务商apiclient_cert.pem证书文件的绝对路径或者以classpath:开头的类路径新建商户管理表、支付订单表等~ 2. 特约商户进件 官方API文档 该支付系统首先需要入驻子商户可以集成微信提供的进件接口这样自由度和管理更方便。 该框架的Applyment4SubService接口实现类已经集成微信特约商户进件API我们只需要设置对应的请求参数对象即可如果是直接集成微信SDK还需要封装参数、解析响应比较麻烦。 public interface Applyment4SubService {/*** 提交申请单API*/WxPayApplymentCreateResult createApply(WxPayApplyment4SubCreateRequest request) throws WxPayException;/*** 通过业务申请编号查询申请状态** param businessCode 业务申请编号* 1、只能由数字、字母或下划线组成建议前缀为服务商商户号。* 2、服务商自定义的唯一编号。* 3、每个编号对应一个申请单每个申请单审核通过后生成一个微信支付商户号。* 4、若申请单被驳回可填写相同的“业务申请编号”即可覆盖修改原申请单信息。* 示例值1900013511_10000*/ApplymentStateQueryResult queryApplyStatusByBusinessCode(String businessCode) throws WxPayException;/*** 通过申请单号查询申请状态*/ApplymentStateQueryResult queryApplyStatusByApplymentId(String applymentId) throws WxPayException;/*** 根据特约子商户ID查询结算账户*/SettlementInfoResult querySettlementBySubMchid(String subMchid) throws WxPayException;/*** 修改结算帐号*/String modifySettlement(String subMchid, ModifySettlementRequest request) throws WxPayException;}示例代码如下 Operation(summary 提交申请单)GetMapping(/createApply)public RString createApply(RequestParam(required false) String applymentId) throws WxPayException {WxPayApplyment4SubCreateRequest request new WxPayApplyment4SubCreateRequest();// 主体资料主体类型、是否是金融机构、营业执照、登记证书、组织机构代码证、单位证明函照片、经营者/法人身份证件、最终受益人信息列表(UBO)、小微辅助证明材料subjectType为小微商户时必填WxPayApplyment4SubCreateRequest.SubjectInfo subjectInfo WxPayApplyment4SubCreateRequest.SubjectInfo.builder().build().setFinanceInstitution(false).setBusinessLicenseInfo(null);// 省略.......request.setSubjectInfo(subjectInfo);// 补充材料WxPayApplyment4SubCreateRequest.AdditionInfo additionInfonew WxPayApplyment4SubCreateRequest.AdditionInfo();additionInfo.setBusinessAdditionMsg(补充说明);additionInfo.setBusinessAdditionPics(null) ;// 补充材料additionInfo.setLegalPersonCommitment(法人开户承诺函);additionInfo.setLegalPersonVideo(法人开户意愿视频);request.setAdditionInfo(additionInfo);// 结算银行账户WxPayApplyment4SubCreateRequest.BankAccountInfo bankAccountInfonew WxPayApplyment4SubCreateRequest.BankAccountInfo();bankAccountInfo.setBankAccountType(BankAccountTypeEnum.BANK_ACCOUNT_TYPE_CORPORATE); // 账户类型对公银行账户bankAccountInfo.setAccountName(开户名称); // 开户名称bankAccountInfo.setAccountBank(开户银行);bankAccountInfo.setBankAddressCode(开户银行省市编码);bankAccountInfo.setBankBranchId(开户银行联行号);bankAccountInfo.setBankName(开户银行全称含支行);bankAccountInfo.setAccountNumber(银行账号);request.setBankAccountInfo(bankAccountInfo);// 业务申请编号request.setBusinessCode(业务申请编号);// 经营资料request.setBusinessInfo(null); // 省略.......// 超级管理员信息request.setContactInfo(null);// 省略.......// 结算规则request.setSettlementInfo(null);// 省略.......// 调用微信APIApplyment4SubService applyment4SubServicenew Applyment4SubServiceImpl(wxPayService);WxPayApplymentCreateResult apply applyment4SubService.createApply(request);String applyMentId apply.getApplymentId(); // 返回申请单IDreturn R.success(applyMentId);}Operation(summary 通过申请单号查询申请状态)GetMapping(/queryApply)public RApplymentStateQueryResult queryApply(RequestParam(required true) String applymentId) throws WxPayException {// 调用API 查询申请状态Applyment4SubService applyment4SubServicenew Applyment4SubServiceImpl(wxPayService);ApplymentStateQueryResult result applyment4SubService.queryApplyStatusByApplymentId(applymentId);return R.success(result);}3. 统一下单 在EcommerceService接口实现类中集成了服务商下单API。多种支付方式时使用同一个方法即可。 public interface EcommerceService {/*** pre* 服务商模式普通支付API(APP支付、JSAPI支付、H5支付、NATIVE支付).* 请求URLhttps://api.mch.weixin.qq.com/v3/pay/partner/transactions/jsapi* 文档地址: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pages/transactions_sl.shtml* /pre** param tradeType 支付方式* param request 请求对象* return 调起支付需要的参数 transactions result* throws WxPayException the wx pay exception*/TransactionsResult partner(TradeTypeEnum tradeType, PartnerTransactionsRequest request) throws WxPayException;/*** pre* 普通查询订单API* 文档地址: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/ecommerce/e_transactions/chapter3_5.shtml* /pre** param request 商户订单信息* return 支付订单信息* throws WxPayException the wx pay exception*/PartnerTransactionsResult queryPartnerTransactions(PartnerTransactionsQueryRequest request) throws WxPayException;/*** pre* 关闭普通订单API* 文档地址: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/ecommerce/e_transactions/chapter3_6.shtml* /pre** param request 关闭普通订单请求* throws WxPayException the wx pay exception* return*/String closePartnerTransactions(PartnerTransactionsCloseRequest request) throws WxPayException; }示例代码如下 Operation(summary 统一下单/(V3))PostMapping(/ecommerceNative)public R? ecommerceNative(OrderEntity mchOrder,String subMchId) throws Exception {try {// 1. 创建请求对象PartnerTransactionsRequest orderRequestnew PartnerTransactionsRequest();// 2. 根据订单系统传过来的订单信息组装支付参数创建支付订单orderRequest.setSpMchid(subMchId); // 子商户号orderRequest.setDescription(示例值Image形象店-深圳腾大-QQ公仔); // 商品描述示例值Image形象店-深圳腾大-QQ公仔PartnerTransactionsRequest.Amount amount new PartnerTransactionsRequest.Amount();amount.setTotal(1); // 订单金额信息orderRequest.setAmount(amount);orderRequest.setOutTradeNo(mchOrder.getOutTradeNo()); // 商户订单号商户系统内部订单号只能是数字、大小写字母_-*且在同一个商户号下唯一orderRequest.setNotifyUrl(https://8da1-120-227-23-190.jp.ngrok.io/pay/wechat/notify); // 通知地址// 3. 发起V3 服务商发起NATIVE支付EcommerceServiceImpl ecommerceServicenew EcommerceServiceImpl(wxPayService);TransactionsResult result ecommerceService.partner(com.github.binarywang.wxpay.bean.ecommerce.enums.TradeTypeEnum.NATIVE, orderRequest);log.info(NATIVE支付成功返回二维码URL result.getCodeUrl());// 4. 省略后续操作return R.success(result);} catch (Exception e) {log.error(微信支付失败,原因:{}, e.getMessage());e.printStackTrace();return R.fail();}}总结 在weixin-java-pay框架中几乎所有的微信API都帮我们集成好了我们只需要设置对应的参数即可甚至每个方法对应的官网API文档也贴上去了好像实在也没什么可讲的~
http://www.yayakq.cn/news/4863/

相关文章:

  • tp框架做网站无锡专业网站制作
  • 微网站的定义高端h5网站开发
  • 中铁建设集团官方网站知名网站建设公司排名
  • 做板子焊接的网站的公司名字广州网站建设信息科技有限公司
  • c语言和c 哪个做网站好西安微网站
  • 华为快速建站广州门户网站开发
  • 合肥网站建设佳蓝网络mvc网站开发实例
  • 网站建设定义做导航网站把别人的网址链接过来要经过允许吗
  • 网站建设与维护课程设计定制网站建设公司策划书
  • 如何做好网站推广优化phpcms怎么做网站
  • 免费网站建站模板潍坊网站定制模板建站
  • 做外贸需要有自己的网站吗wordpress外贸服装营销型主题
  • 百度网页版浏览器入口官网山东seo推广公司
  • 做网站一般几个人完成wordpress多功能代码
  • 空间站 参考消息WordPress上展示PDF
  • 网站模板切换wordpress无法编辑
  • 网站开发到发布手机医疗网站
  • 网站建设合同报价单 模板下载wap网页编写
  • 西安seo网站设计公司广东省做农业网站公司
  • icp网站备案流程做网站的公司叫什么
  • 顺德区网站设计建设企业网站建设dqcx
  • 出口电商网站建设程序网站建设与管理需要什么软件有哪些
  • 网站建设运维合同一个人能开发app吗
  • 高端网站配色网站申请流程
  • 网站前端开发惠州seo关键词排名
  • 宁波网站设计价格北京seo薪资
  • 上海松一网站建设成都创新互联科技有限公司
  • 北京私人做网站台州网站排名外包
  • 北京网站建设公司华网天下官网双语网站后台怎么做
  • 一点空间网站建设磁力棒