Skip to content

Commit b0922bc

Browse files
committed
添加测试
1 parent ac1ca9f commit b0922bc

5 files changed

+235
-0
lines changed

cmd/alipayCertPublicKey_RSA2.crt

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDqDCCApCgAwIBAgIQIBkQCPhtbxYjxw3ptfKv7TANBgkqhkiG9w0BAQsFADCBkTELMAkGA1UE
3+
BhMCQ04xGzAZBgNVBAoMEkFudCBGaW5hbmNpYWwgdGVzdDElMCMGA1UECwwcQ2VydGlmaWNhdGlv
4+
biBBdXRob3JpdHkgdGVzdDE+MDwGA1UEAww1QW50IEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1
5+
dGhvcml0eSBDbGFzcyAyIFIxIHRlc3QwHhcNMTkxMDA4MDg1OTE4WhcNMjIxMDA2MDg1OTE4WjB6
6+
MQswCQYDVQQGEwJDTjEVMBMGA1UECgwM5rKZ566x546v5aKDMQ8wDQYDVQQLDAZBbGlwYXkxQzBB
7+
BgNVBAMMOuaUr+S7mOWunSjkuK3lm70p572R57uc5oqA5pyv5pyJ6ZmQ5YWs5Y+4LTIwODgxMDIx
8+
NjkyMjc1MDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYyERVSn6tFHIAP0dl+JKD
9+
wsvFEBfXxc4wkTz8w2eVJJNYIKgecz4UhT4B8H7wUT6AYglhcmWlMjJafhVQy17CH/gLy7DMFah3
10+
/eKXD1TLuUVuVcMF3wSfxrn0DELpz1gvWdYPv+yHWzOp6PfVVEjY5dBJiC+FY0aPPDb8pLUZ2taZ
11+
2xU/aE6IpXLpM20ftecJJF8EEJD4uCo7W0TQ0cMOzBHAEsAWYiV9n/+pn5rwW8xz/+xSb4JXvylB
12+
triefOyaHXR/NVUUhaIrDdUOzFc9GsC04kLA2wHBu8y4j+Jy2/HGNSXicFkPDiVe3l5ZaoGudNLO
13+
iAU06TTpo2YQFNSHAgMBAAGjEjAQMA4GA1UdDwEB/wQEAwIE8DANBgkqhkiG9w0BAQsFAAOCAQEA
14+
sN1h55ciNShtUuYOIRPZiJINaVhn7Z74EALYRm22W3exmGdfPfD44QdZ35jXHaRi86WcjE8HdImu
15+
PUWo0U6ylho4vb0fPJBq1ZpwcC6uOWjgLwNIsuIr47jEv1pd04K+I9SyB+ADvZ20DqCVV82E6oMx
16+
PkDdsDcqekQM8gBw0WVZO9wzfQLGoETqWTRjTrftJeZ7qdHYwW1ERV6ZfcJOCfEwdhsbK2+ipDhq
17+
mkQ6MwEZTP97kHWenG2xp3VeKaGEWFUr9ajrN9OkvvQ8LDTnDNxbsv8Qa5U+4PqQJOp9EMsTSxi2
18+
mCwltu3tiQBUT/QwdiWYMFvx4KNP/6dKbIElgQ==
19+
-----END CERTIFICATE-----
20+
-----BEGIN CERTIFICATE-----
21+
MIIE4jCCAsqgAwIBAgIIddq/0OOwJzIwDQYJKoZIhvcNAQELBQAwejELMAkGA1UEBhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5MTEwLwYDVQQDDChBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFIxMB4XDTE4MDMyMjE0MzAzMVoXDTM3MTEyNjE0MzAzMVowgYIxCzAJBgNVBAYTAkNOMRYwFAYDVQQKDA1BbnQgRmluYW5jaWFsMSAwHgYDVQQLDBdDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTE5MDcGA1UEAwwwQW50IEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBDbGFzcyAxIFIxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3OruCD7d4evJiEKxzJQYmwp5ziF7lT4fMpBb+WLme42Ulrkh4cJCDEOTUL29Yb8NyQ6cRe9UHLupI2HbByDZoSJl7nkxyi5NGJLaADC7wnFBJq39WMaVBzouFo0yQkkYNbbkJm+MsV4obu3l2xFGQx72bz6ThDJLpfYJbnGXqC4Bcyn8ubj1ddrJ0VsGdj/3Knmuo7XWLYqqN/qomK3LJIpfhVozi0b2FWQl+lE9urch+FVhXSg0AlRGn8FTOVNlKrY+hAKZGZhqC+J+BD4GL3hQZzVeNl0tMmSGz474lnt7DExNq33WfyJkn5UIoCfg8Tno7XTnocmBzbNYPq1aSQIDAQABo2MwYTAfBgNVHSMEGDAWgBRfdLQEwE8HWurlsdsio4dBspzhATAdBgNVHQ4EFgQUcQfiBGEW5OXyZesxD8ng9Dya1ZEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAGkc6bDB4YQCa5D6IbgRtLfiqTQb5DeCp38uVKKrUl8ZCE5U+wXSu/fFhOkIs+Aq9tEOdPWgi7TAxPMMbfJRTAF20qK1qF/X6lwRYGSi7LBbEhmI7dYFKj7i7z6fupBMVaI4C4O8KJGfovp3qD/FkXyb13Lo8vL85Ll0BFk89Qbim0qYhW2JRsf9G46vBeIZaoMm8iMv9vvlVgMs30R96W+gZBgvlIE4ah+oOEUd+G/V74vTbaXtWI8gkmwCzs/yUGW2g2ERHqZ3ksq4xwL+mNmqRNzq3aC9iA4p0uoHp/els89vWHCUaPjHmEnhx+M843/WVjN8LWpoeQ+wc7Wz1jfYy0e+JXidqWkPn7qorlEQTfzcFBZh+YHnV6oVtcG5iYatRKVTAPA+RrjJnEEzn6hAIPsiYsLmdA18f6ruuUUuKRukAEbCQ9q9L1gyOkaz2LxZj5kOFyemDa3pjqESuHuazztnOvs6u4YrH03CPyK3G/6MhCNEJTxGDYy+8bRtNsTGRUbdmhZm/u8tjYIreNEy55f4WYlb72R6PODBLXmf4HWWPpyX1Zy9TEhmFsuPfelhBrdmBVM1iTwVFLW7gLqoEwzYhMt5KRPjmfCc2P2pcbpLnYNcbSYiykFsCa7jHG0137Jv8Z/QH2N9r4+xdER7SW40ndmD59ynmGvrWUMj
22+
-----END CERTIFICATE-----

cmd/alipayRootCert.crt

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIICbTCCAhCgAwIBAgIQIBkEINPjNERrjd9hx1ZZIjAMBggqgRzPVQGDdQUAMIGE
3+
MQswCQYDVQQGEwJDTjEWMBQGA1UECgwNQW50IEZpbmFuY2lhbDElMCMGA1UECwwc
4+
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgdGVzdDE2MDQGA1UEAwwtQW50IEZpbmFu
5+
Y2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBTMSB0ZXN0MB4XDTE5MDQxOTE5
6+
NDQ0MVoXDTM5MDQxNDE5NDQ0MVowgYQxCzAJBgNVBAYTAkNOMRYwFAYDVQQKDA1B
7+
bnQgRmluYW5jaWFsMSUwIwYDVQQLDBxDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSB0
8+
ZXN0MTYwNAYDVQQDDC1BbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y
9+
aXR5IFMxIHRlc3QwWTATBgcqhkjOPQIBBggqgRzPVQGCLQNCAAQttFDfX2FkiCmn
10+
nVncfD9BHp+RpOIimHw+OEjbmdHxBzEkyo4PVukRQjXlai5cnlDZkZi895lTs6NS
11+
iDalUOQio2AwXjAfBgNVHSMEGDAWgBQkX+t1ZzimuQ4wXp/iVx36380GuDAdBgNV
12+
HQ4EFgQUJF/rdWc4prkOMF6f4lcd+t/NBrgwDAYDVR0TBAUwAwEB/zAOBgNVHQ8B
13+
Af8EBAMCAQYwDAYIKoEcz1UBg3UFAANJADBGAiEA5qsICDDINhseAW8ynrCA5UYv
14+
GjeDP7kVF6DWM6CVi1QCIQD0bNAlXPFEG2vonwjMQ4MCChgz4ZutBTGU7SOVFxwf
15+
Pg==
16+
-----END CERTIFICATE-----
17+
18+
-----BEGIN CERTIFICATE-----
19+
MIID9DCCAtygAwIBAgIQIBkEIlNpcBJZffwE5p9uBzANBgkqhkiG9w0BAQsFADCB
20+
hDELMAkGA1UEBhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxJTAjBgNVBAsM
21+
HENlcnRpZmljYXRpb24gQXV0aG9yaXR5IHRlc3QxNjA0BgNVBAMMLUFudCBGaW5h
22+
bmNpYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUjEgdGVzdDAeFw0xOTA0MjIw
23+
MzA3MjNaFw0yOTA0MTkwMzA3MjNaMIGEMQswCQYDVQQGEwJDTjEWMBQGA1UECgwN
24+
QW50IEZpbmFuY2lhbDElMCMGA1UECwwcQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
25+
dGVzdDE2MDQGA1UEAwwtQW50IEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhv
26+
cml0eSBSMSB0ZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxI/4
27+
d3bjLU2W3xPKI0Hwq1U9fUirj5XHIt6VgKLXeB127wuqLDFPhb4h5w0SQWXuEdIC
28+
MlvfD+9Sp7quzrtG9WgnAjyoYjzP5XDfqY96urf2hnzbKKWnNivbKKrmM9JTeN0f
29+
XihjAXPAZAqfP9MtAhB0QFI70n6pFFsWlX9lDK75n42XEubi0PbQ09XghWDd5HkO
30+
bX03YR03EUL7KGFSD18DaZwKmkkqMwh0jgiDG/buFRGOgxXRS84sC+SsC94wkrYm
31+
Dkoa5VyhbDng7u/KukEHWkKwXjjMkVsTIswQBmsa1iHsrR4QRYj2VEMMBCsgnxdC
32+
cDxeCnD0RSP4QUsc8wIDAQABo2AwXjAfBgNVHSMEGDAWgBTeufJUrK23wbIMgg0N
33+
AE4UaHXI4DAdBgNVHQ4EFgQU3rnyVKytt8GyDIINDQBOFGh1yOAwDAYDVR0TBAUw
34+
AwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBABioNsaM6dkp
35+
easi1xWcW3Ca99eBb8Fr5aKXI22YpRG3mqO8XqBfk03gtFpQNQTJJFIMamNDE+ff
36+
17DHk4LBeL0zVTKIRCKtBPEcV+Qq2gPuCl8wCyEj8uxUsrjVh2QkCYbNI/z9BimY
37+
gwu6uxUfGVXTjBqG42L7wCiScgCxnU5uO3lBJXUtFeVEuKRD4Clh5iT1BSTUjME4
38+
y+uWqzQFWkPSYeESvsrcf1vys0HVZ2xun83rfPefoame0V4aiZN8+ihy2sNw+oAm
39+
zNfHpsfMHOMtS3ROCjrxnng/WAeuZiFJcQMHhGyowD9Co9iAs1OdprrVx2grE9Xq
40+
16t9mtiA0Q8=
41+
-----END CERTIFICATE-----
42+
43+
-----BEGIN CERTIFICATE-----
44+
MIICYDCCAgSgAwIBAgIQIBkEJF9EFUQvCUO0atPBzDAMBggqhkjOPQQDAgUAMH8x
45+
CzAJBgNVBAYTAkNOMRYwFAYDVQQKDA1BbnQgRmluYW5jaWFsMSAwHgYDVQQLDBdD
46+
ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTE2MDQGA1UEAwwtQW50IEZpbmFuY2lhbCBD
47+
ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFMSB0ZXN0MB4XDTE5MDQyNDAzMzIyM1oX
48+
DTI5MDQyMTAzMzIyM1owfzELMAkGA1UEBhMCQ04xFjAUBgNVBAoMDUFudCBGaW5h
49+
bmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5MTYwNAYDVQQD
50+
DC1BbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEUxIHRlc3Qw
51+
WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS7f4oL6NONlSVi8NM5ZpWJS3K9iGXc
52+
WtSZgAgbzAX9SsVnjn9cnkZ6pForo4nBuZ6AlwOY741ejaVyrQet/T/Xo2AwXjAf
53+
BgNVHSMEGDAWgBSMAU4DTR4QZ60g8qDqc71e2s1H+DAdBgNVHQ4EFgQUjAFOA00e
54+
EGetIPKg6nO9XtrNR/gwDAYDVR0TBAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDAYI
55+
KoZIzj0EAwIFAANIADBFAiAo7BxEhi/IPnymbIrNTnmdwWlr3LY0mI1MWBBBxvst
56+
7AIhAKJ+DTgkHPBjlqM1xvda14EP/cHn4IgjZWnzLKXKPcUP
57+
-----END CERTIFICATE-----
+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDjzCCAnegAwIBAgIQIBkQCKTpkEZu3kyZzAEHbTANBgkqhkiG9w0BAQsFADCBkTELMAkGA1UE
3+
BhMCQ04xGzAZBgNVBAoMEkFudCBGaW5hbmNpYWwgdGVzdDElMCMGA1UECwwcQ2VydGlmaWNhdGlv
4+
biBBdXRob3JpdHkgdGVzdDE+MDwGA1UEAww1QW50IEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1
5+
dGhvcml0eSBDbGFzcyAyIFIxIHRlc3QwHhcNMTkxMDA4MDg1OTE2WhcNMjIxMDA2MDg1OTE2WjBh
6+
MQswCQYDVQQGEwJDTjEVMBMGA1UECgwM5rKZ566x546v5aKDMQ8wDQYDVQQLDAZBbGlwYXkxKjAo
7+
BgNVBAMMITIwODgxMDIxNjkyMjc1MDMtMjAxNjA3MzEwMDEyOTUzNzCCASIwDQYJKoZIhvcNAQEB
8+
BQADggEPADCCAQoCggEBALhQ5Mq0Oy1GuPI0+96T14aq/VFgOYe0vDuiWriUG2oX8P4F+s93Tisx
9+
iiK+o7mv6/UNA1QazbILjx5Dh5ZvRNKOX+RTLaMfMNxQaJmsaGDHDd79Mn3DuLHpOuLFWDmfnjag
10+
LXNay06XvmCSIvsSQN8Qqj99lRsu3xoeAFbzs1gTX2ht8A7Eaf5iwfkemSXcYZvLfser+Zxfi1xY
11+
Ng3nkk9oBxLKPJ7KX+4wDX1K2ZAS5T33aOqphZ3ljfPnwOi2IPh1UC2MHlWiCYKQtRxqW9QHc3/P
12+
fLrsZBP6C06LjZV/Gdb8mhpcq6scr1SSbDUY+73uJkAXdLLX36Y515Hwj5ECAwEAAaMSMBAwDgYD
13+
VR0PAQH/BAQDAgTwMA0GCSqGSIb3DQEBCwUAA4IBAQBan08gi9vXd0e8tOE9rhTG3Ouy1unkDNIO
14+
W2X6rHhETgvpWPy0yGO9ML4+c87rr7Co6X+rpAP2ITHAsVXvVYbhDwcbXl539bgHuDUMfC+xwzra
15+
mZoSRLyti69FTEtolRtXERxx9Iv5z8bDzOdfjuLHk0P9OwgzCEghRvQ8Twy1ZGytwP1nzphcZVp+
16+
lmWOB6o7+JUSwK9D8lrgFz0kpLOdsHCJVK1jjtXFfzgWV5mpecIqTBKIQ+Xsef0ACM+6LecS5Pog
17+
sBPTYv1EhqgF1cHK42qJXyDWCmuJLzAEkcpjizPmVJENYDGzDBSMIYsEzoaLfqAKNDtl9GzB75dQ
18+
Gk2y
19+
-----END CERTIFICATE-----

cmd/go.mod

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
module github.com/smartwalle/alipay/cmd
2+
3+
go 1.12
4+
5+
require github.com/smartwalle/alipay/v3 v3.1.3 // indirect
6+
7+
require (
8+
github.com/gin-gonic/gin v1.4.0
9+
github.com/smartwalle/xid v1.0.6 // indirect
10+
)

cmd/main.go

+127
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"github.com/gin-gonic/gin"
6+
"github.com/smartwalle/alipay/v3"
7+
"github.com/smartwalle/xid"
8+
"log"
9+
"net/http"
10+
)
11+
12+
var aliClient *alipay.Client
13+
14+
const (
15+
kAppId = "2016073100129537"
16+
kPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC4UOTKtDstRrjyNPvek9eGqv1RYDmHtLw7olq4lBtqF/D+BfrPd04rMYoivqO5r+v1DQNUGs2yC48eQ4eWb0TSjl/kUy2jHzDcUGiZrGhgxw3e/TJ9w7ix6TrixVg5n542oC1zWstOl75gkiL7EkDfEKo/fZUbLt8aHgBW87NYE19obfAOxGn+YsH5Hpkl3GGby37Hq/mcX4tcWDYN55JPaAcSyjyeyl/uMA19StmQEuU992jqqYWd5Y3z58DotiD4dVAtjB5VogmCkLUcalvUB3N/z3y67GQT+gtOi42VfxnW/JoaXKurHK9Ukmw1GPu97iZAF3Sy19+mOdeR8I+RAgMBAAECggEAAXlEGwrN3lLOb8FUsjbkZkM/u0LVsuwTBTcLGqa0gWinmKBbnQULLvU6cYSssnNho5fzCt0b/+xvvII1t1I0bqqMwbqYhtFdBqXt8CycuQleZwYHPVIvS9zdh6qkRfGsxisJsf5r2bkE4KjKds9yjVYIxnEunAUH66GJxygzquSZQPxgYB3ASRkTzRRowe3ROqaGLF2ejEcvcASKAiIEaQ6Az0sMDtIUAcqFcN1mp9TQ+UyOgNsTw8qWHKv6z6XwjSfYcVfNhR5bcsf+3zr8CKK7cD6f6cjtIrrDSeDdbjdqXTMEYEOV4qs2PH6mNJwx2V1mAZKNZ3bIRGSiKme+sQKBgQD5UDqLBySXtqsCpMC31SvuHGOlkwEQAKslytJvE1kerh4VV9DCIyRsV9v57GZSc8HGo/AQq7dJAa3X9mumZ4vL8RIrtMkuU+scwT+AzPx8jeibNKLq1GI4GaPmdHJaJsBGtA2VUphWCw1HvHegJGgPUoymfpOc8iKwMdQZO3ZHxwKBgQC9QmWJ6zoBvkIOZdoNHpOMrHkIphzJagC/2dbdH6x58fEX787Nmd8yL3mU189EENmFJAdw9d5kPzi8Nxa84oIsbsQSTaYuF0VN6Kw+dZstoJ3U4pf5ReKjWiRNk6waeg6pzEYwH7mDbLcGBw+0+gW08KJLfsyl6aejJ75i9cnd5wKBgHa7UZYiabfi46BXq/wghlJYrNAOqWPgnaFa7Uq+0SN+Uo9hieba6565XOayQaykujUKn+qgjKI1LYB7N5tBFt+iSEAOUf1BM+g21DJX7Sq4Pn2j3K6vRLNo6ph2/nqWl91UJF/nvOrFSqbOR745eGFLs/Yas9v7qK92m4cEvXjDAoGAG2cOrp55YqE6jT0gCkBAGuEqER+EEYGgpCaVXqTkYy+tucqGBezejTSkhPGOWAucgxOJZEilL5ybyVyslSKyuF49U20cv5Ws+i/TKKP8mOmlkJpSaMw+mWpG0VitVZQQpXMnQnaFdMr74QqKsqh0xRMGXKn6VZd0J0Js5YUy+kcCgYEA5dxAzYHV2yH2/b/Uau99VUtp+xE3BssiEO5CiVLEvzLLQlqcqtFO3ptTMqfTeqe98iiYcr5EMSqLHte1qQeGziyKzPvMHkjrTPMDccVur0L2fcE+WBy2fNdBDzQQ5k3ra27/i5NcRzNAhoBXBNVRwnrLXpaUEjy7ERCoR6y1XkE="
17+
kServerPort = "9989"
18+
kServerDomain = "http://127.0.0.1" + ":" + kServerPort
19+
)
20+
21+
func main() {
22+
var err error
23+
24+
if aliClient, err = alipay.New(kAppId, kPrivateKey, false); err != nil {
25+
log.Println("初始化支付宝失败", err)
26+
return
27+
}
28+
29+
// 使用支付宝证书
30+
if err = aliClient.LoadAppPublicCertFromFile("appCertPublicKey_2016073100129537.crt"); err != nil {
31+
log.Println("加载证书发生错误", err)
32+
return
33+
}
34+
35+
if err = aliClient.LoadAliPayRootCertFromFile("alipayRootCert.crt"); err != nil {
36+
log.Println("加载证书发生错误", err)
37+
return
38+
}
39+
if err = aliClient.LoadAliPayPublicCertFromFile("alipayCertPublicKey_RSA2.crt"); err != nil {
40+
log.Println("加载证书发生错误", err)
41+
return
42+
}
43+
44+
var s = gin.Default()
45+
s.GET("/alipay", pay)
46+
s.GET("/callback", callback)
47+
s.POST("/notify", notify)
48+
s.Run(":" + kServerPort)
49+
}
50+
51+
func pay(c *gin.Context) {
52+
var tradeNo = fmt.Sprintf("%d", xid.Next())
53+
54+
var p = alipay.TradePagePay{}
55+
p.NotifyURL = kServerDomain + "/notify"
56+
p.ReturnURL = kServerDomain + "/callback"
57+
p.Subject = "支付测试:" + tradeNo
58+
p.OutTradeNo = tradeNo
59+
p.TotalAmount = "10.00"
60+
p.ProductCode = "FAST_INSTANT_TRADE_PAY"
61+
62+
url, _ := aliClient.TradePagePay(p)
63+
64+
c.Redirect(http.StatusTemporaryRedirect, url.String())
65+
}
66+
67+
func callback(c *gin.Context) {
68+
c.Request.ParseForm()
69+
70+
//ok, err := aliClient.VerifySign(c.Request.Form)
71+
//if err != nil {
72+
// log.Println("回调验证签名发生错误", err)
73+
// return
74+
//}
75+
//
76+
//if ok == false {
77+
// log.Println("回调验证签名未通过")
78+
// return
79+
//}
80+
81+
var outTradeNo = c.Request.Form.Get("out_trade_no")
82+
var p = alipay.TradeQuery{}
83+
p.OutTradeNo = outTradeNo
84+
rsp, err := aliClient.TradeQuery(p)
85+
if err != nil {
86+
c.String(http.StatusBadRequest, "验证订单 %s 信息发生错误: %s", outTradeNo, err.Error())
87+
return
88+
}
89+
if rsp.IsSuccess() == false {
90+
c.String(http.StatusBadRequest, "验证订单 %s 信息发生错误: %s-%s", outTradeNo, rsp.Content.Msg, rsp.Content.SubMsg)
91+
return
92+
}
93+
94+
c.String(http.StatusOK, "订单 %s 支付成功", outTradeNo)
95+
}
96+
97+
func notify(c *gin.Context) {
98+
c.Request.ParseForm()
99+
100+
ok, err := aliClient.VerifySign(c.Request.Form)
101+
if err != nil {
102+
log.Println("异步通知验证签名发生错误", err)
103+
return
104+
}
105+
106+
if ok == false {
107+
log.Println("异步通知验证签名未通过")
108+
return
109+
}
110+
111+
log.Println("异步通知验证签名通过")
112+
113+
var outTradeNo = c.Request.Form.Get("out_trade_no")
114+
var p = alipay.TradeQuery{}
115+
p.OutTradeNo = outTradeNo
116+
rsp, err := aliClient.TradeQuery(p)
117+
if err != nil {
118+
log.Printf("异步通知验证订单 %s 信息发生错误: %s \n", outTradeNo, err.Error())
119+
return
120+
}
121+
if rsp.IsSuccess() == false {
122+
log.Printf("异步通知验证订单 %s 信息发生错误: %s-%s \n", outTradeNo, rsp.Content.Msg, rsp.Content.SubMsg)
123+
return
124+
}
125+
126+
log.Printf("订单 %s 支付成功 \n", outTradeNo)
127+
}

0 commit comments

Comments
 (0)