Skip to content

Commit 4eb3362

Browse files
committed
修复支付宝接口中文乱码bug
1 parent f5393b3 commit 4eb3362

File tree

7 files changed

+20
-8
lines changed

7 files changed

+20
-8
lines changed

build/version.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<VersionMajor>1</VersionMajor>
44
<VersionMinor>0</VersionMinor>
55
<VersionPatch>11</VersionPatch>
6-
<VersionQuality>20180604-1</VersionQuality>
6+
<VersionQuality>20180605-2</VersionQuality>
77
<VersionPrefix>$(VersionMajor).$(VersionMinor).$(VersionPatch)</VersionPrefix>
88
<VersionSuffix>preview-$(VersionQuality)</VersionSuffix>
99
</PropertyGroup>

src/Util.Biz.Payments/Alipay/Configs/AlipayConfig.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,18 @@ public class AlipayConfig {
3838
/// </summary>
3939
public string NotifyUrl { get; set; }
4040

41+
/// <summary>
42+
/// 字符编码
43+
/// </summary>
44+
public string Charset { get; set; } = "utf-8";
45+
46+
/// <summary>
47+
/// 获取支付网关地址
48+
/// </summary>
49+
public string GetGatewayUrl() {
50+
return $"{GatewayUrl}?charset={Charset}";
51+
}
52+
4153
/// <summary>
4254
/// 验证
4355
/// </summary>

src/Util.Biz.Payments/Alipay/Parameters/AlipayParameterBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public AlipayParameterBuilder( AlipayConfig config, PayParamBase param = null )
4242
/// 初始化
4343
/// </summary>
4444
private void Init( PayParamBase param ) {
45-
Format( "json" ).Charset( "utf-8" ).SignType( "RSA2" ).Timestamp().Version( "1.0" ).AppId( Config.AppId );
45+
Format( "json" ).Charset( Config.Charset ).SignType( "RSA2" ).Timestamp().Version( "1.0" ).AppId( Config.AppId );
4646
if( param == null )
4747
return;
4848
param.Init();

src/Util.Biz.Payments/Alipay/Parameters/FormBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public FormBuilder AddParam( AlipayParameterBuilder builder ) {
8686
private void AddProperties( AlipayParameterBuilder builder ) {
8787
AddAttribute( "id", FormId );
8888
AddAttribute( "name", FormId );
89-
AddAttribute( "action", builder.Config.GatewayUrl );
89+
AddAttribute( "action", builder.Config.GetGatewayUrl() );
9090
AddAttribute( "charset", builder.GetValue( AlipayConst.Charset ) );
9191
AddAttribute( "method", "POST" );
9292
}

src/Util.Biz.Payments/Alipay/Services/Base/AlipayServiceBase.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ protected virtual async Task<string> Request( AlipayConfig config, AlipayParamet
103103
if( IsSendRequest == false )
104104
return string.Empty;
105105
return await Web.Client()
106-
.Post( config.GatewayUrl )
106+
.Post( config.GetGatewayUrl() )
107107
.Data( builder.GetDictionary() )
108108
.ResultAsync();
109109
}
@@ -123,7 +123,7 @@ protected void WriteLog( AlipayConfig config, AlipayParameterBuilder builder, Al
123123
log.Class( GetType().FullName )
124124
.Caption( "支付宝支付" )
125125
.Content( $"支付方式 : {GetPayWay().Description()}" )
126-
.Content( $"支付网关 : {config.GatewayUrl}" )
126+
.Content( $"支付网关 : {config.GetGatewayUrl()}" )
127127
.Content( "请求参数:" )
128128
.Content( builder.GetDictionary() )
129129
.Content()
@@ -148,7 +148,7 @@ protected void WriteLog( AlipayConfig config, AlipayParameterBuilder builder, st
148148
log.Class( GetType().FullName )
149149
.Caption( "支付宝支付" )
150150
.Content( $"支付方式 : {GetPayWay().Description()}" )
151-
.Content( $"支付网关 : {config.GatewayUrl}" )
151+
.Content( $"支付网关 : {config.GetGatewayUrl()}" )
152152
.Content( "请求参数:" )
153153
.Content( builder.GetDictionary() )
154154
.Content()

test/Util.Biz.Tests.Integration/Payments/Alipay/AlipayPagePayServiceTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public void Dispose() {
4242
public async Task TestPayAsync() {
4343
Time.SetTime( "2018-5-22 11:11:11" );
4444
String result = new String();
45-
result.Append( "<form action=\"https://openapi.alipaydev.com/gateway.do\" charset=\"utf-8\" id=\"formAlipay\" method=\"POST\" name=\"formAlipay\">" );
45+
result.Append( "<form action=\"https://openapi.alipaydev.com/gateway.do?charset=utf-8\" charset=\"utf-8\" id=\"formAlipay\" method=\"POST\" name=\"formAlipay\">" );
4646
result.Append( "<input name=\"app_id\" value=\"2016090800463464\"></input>" );
4747
result.Append( "<input name=\"biz_content\" value=\"{'out_trade_no':'59f7caeeab89e009e4a4e1fb','subject':'test','total_amount':'10','timeout_express':'90m'}\"></input>" );
4848
result.Append( "<input name=\"charset\" value=\"utf-8\"></input>" );

test/Util.Biz.Tests.Integration/Payments/Alipay/AlipayWapPayServiceTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public void Dispose() {
4242
public async Task TestPayAsync() {
4343
Time.SetTime( "2018-5-22 11:11:11" );
4444
String result = new String();
45-
result.Append( "<form action=\"https://openapi.alipaydev.com/gateway.do\" charset=\"utf-8\" id=\"formAlipay\" method=\"POST\" name=\"formAlipay\">" );
45+
result.Append( "<form action=\"https://openapi.alipaydev.com/gateway.do?charset=utf-8\" charset=\"utf-8\" id=\"formAlipay\" method=\"POST\" name=\"formAlipay\">" );
4646
result.Append( "<input name=\"app_id\" value=\"2016090800463464\"></input>" );
4747
result.Append( "<input name=\"biz_content\" value=\"{'out_trade_no':'59f7caeeab89e009e4a4e1fb','subject':'test','total_amount':'10','timeout_express':'90m'}\"></input>" );
4848
result.Append( "<input name=\"charset\" value=\"utf-8\"></input>" );

0 commit comments

Comments
 (0)