Withholding Tax(预扣所得税)-后台配置 Part 3

​本文主要介绍在S4 HANA OP中Withholding Tax(预扣所得税)的后台配置及前台操作。​

目录

1.2 计算

1.2.3 给WHT Type定义汇率类型

1.2.4 定义WHT Type 舍入规则

1.2.5 定义WHT Code

1.2.6 定义WHT计算公式


1.2 计算

1.2.3 给WHT Type定义汇率类型

以上配置定义了对于Withholding Tax记账行项目, 如果是外币记账,使用什么汇率类型将Withholding Tax外币金额转换为本位币金额。对于大多数国家,通常Withholding Tax记账行项目的汇率和凭证汇率相同,所以不需要配置此处的汇率类型;但是对于某些国家,例如JP, Withholding Tax记账行项目需要使用规定的汇率类型,因此需要在此配置点配置汇率类型。

该步骤属于WHT可选配置,所以看情况配置。

1.2.4 定义WHT Type 舍入规则

以上配置按照公司代码和币种细分了WHT Type的舍入规则。该步骤属于WHT可选配置,所以看情况配置。

Unit:用于明确Rounding到哪一位。遵循如下规

以下是一个简单的支付宝先签约后扣款的 Spring Boot 代码示例,需要您替换相应的参数并配置您的支付宝账户信息。 ```java import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.request.AlipayTradePayRequest; import com.alipay.api.request.AlipayUserAgreementPageSignRequest; import com.alipay.api.request.AlipayUserAgreementQueryRequest; import com.alipay.api.response.AlipayTradePayResponse; import com.alipay.api.response.AlipayUserAgreementPageSignResponse; import com.alipay.api.response.AlipayUserAgreementQueryResponse; import org.springframework.stereotype.Service; @Service public class AlipayService { private final AlipayConfig alipayConfig; public AlipayService(AlipayConfig alipayConfig) { this.alipayConfig = alipayConfig; } public void signAndPay() throws AlipayApiException { // 初始化 AlipayClient AlipayClient alipayClient = new DefaultAlipayClient( alipayConfig.getGatewayUrl(), alipayConfig.getAppId(), alipayConfig.getMerchantPrivateKey(), "json", alipayConfig.getCharset(), alipayConfig.getAlipayPublicKey(), alipayConfig.getSignType()); // 先发起签约请求 AlipayUserAgreementPageSignRequest signRequest = new AlipayUserAgreementPageSignRequest(); signRequest.setReturnUrl(alipayConfig.getReturnUrl()); signRequest.setNotifyUrl(alipayConfig.getNotifyUrl()); signRequest.setAgreementName("测试协议"); signRequest.setSignerName("张三"); signRequest.setSignerIdentityType("IDCARD"); signRequest.setSignerIdentityNo("123456789012345678"); signRequest.setPersonalProductCode("GENERAL_WITHHOLDING_P"); signRequest.setSignScene("INDUSTRY|CARRENTAL"); signRequest.setExternalAgreementNo("1234567890"); signRequest.setDeviceId("123456"); signRequest.setAppId(alipayConfig.getAppId()); signRequest.setAccessParams("{\"channel\":\"ALIPAYAPP\"}"); AlipayUserAgreementPageSignResponse signResponse = alipayClient.pageExecute(signRequest); String signResult = signResponse.getBody(); System.out.println(signResult); // 等待用户在支付宝页面确认签约后,获取签约结果 AlipayUserAgreementQueryRequest queryRequest = new AlipayUserAgreementQueryRequest(); queryRequest.setAgreementNo("202101010000000000001"); queryRequest.setProductCode("GENERAL_WITHHOLDING_P"); AlipayUserAgreementQueryResponse queryResponse = alipayClient.execute(queryRequest); String queryResult = queryResponse.getBody(); System.out.println(queryResult); if ("SUCCESS".equals(queryResponse.getStatus())) { // 签约成功,发起扣款请求 AlipayTradePayRequest payRequest = new AlipayTradePayRequest(); payRequest.setBizContent("{\"out_trade_no\":\"202101010000000000002\"," + "\"total_amount\":\"0.01\",\"subject\":\"测试商品\"," + "\"seller_id\":\"支付宝卖家ID\",\"buyer_id\":\"" + queryResponse.getPayerUserId() + "\"," + "\"auth_no\":\"" + queryResponse.getAgreementNo() + "\"," + "\"product_code\":\"GENERAL_WITHHOLDING\"}"); AlipayTradePayResponse payResponse = alipayClient.execute(payRequest); String payResult = payResponse.getBody(); System.out.println(payResult); } else { // 签约失败或者其他原因,处理异常情况 System.out.println("签约失败"); } } } ``` 需要注意的是,这只是一个简单的示例代码,具体实现过程中需要您根据自己的业务需求和接口文档进行相应的调整和修改。同时,建议您在测试环境中进行代码测试和调试,确保代码的正确性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SAP小V

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值