Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Jeepay
Commits
9c5d6aa7
Commit
9c5d6aa7
authored
Aug 14, 2017
by
jmdhappy
Browse files
修改统一下单测试方法
parent
e48e141c
Changes
2
Hide whitespace changes
Inline
Side-by-side
xxpay-shop/src/main/java/org/xxpay/shop/controller/GoodsOrderController.java
View file @
9c5d6aa7
...
...
@@ -46,7 +46,7 @@ public class GoodsOrderController {
static
final
String
reqKey
=
"M86l522AV6q613Ii4W6u8K48uW8vM1N6bFgyv769220MdYe9u37N4y7rI5mQ"
;
// 验签key
static
final
String
resKey
=
"Hpcl522AV6q613KIi46u6g6XuW8vM1N8bFgyv769770MdYe9u37M4y7rIpl8"
;
static
final
String
baseUrl
=
"http://api.xxpay.org"
;
static
final
String
baseUrl
=
"http://api.xxpay.org
/api
"
;
//static final String baseUrl = "http://xxpay.ngrok.cc";
private
AtomicLong
seq
=
new
AtomicLong
(
0L
);
...
...
@@ -261,7 +261,7 @@ public class GoodsOrderController {
GoodsOrder
createGoodsOrder
(
String
goodsId
,
Long
amount
)
{
// 先插入订单数据
String
goodsOrderId
=
String
.
format
(
"%s%s%06d"
,
"G"
,
DateUtil
.
getSeqString
(),
(
int
)
seq
.
getAndIncrement
()
%
1000000
);
String
goodsOrderId
=
String
.
format
(
"%s%s%06d"
,
"G"
,
DateUtil
.
getSeqString
(),
(
int
)
seq
.
getAndIncrement
()
%
1000000
);
GoodsOrder
goodsOrder
=
new
GoodsOrder
();
goodsOrder
.
setGoodsOrderId
(
goodsOrderId
);
goodsOrder
.
setGoodsId
(
goodsId
);
...
...
xxpay-shop/src/main/java/org/xxpay/shop/demo/PayOrderDemo.java
View file @
9c5d6aa7
...
...
@@ -17,75 +17,43 @@ public class PayOrderDemo {
// 商户ID
static
final
String
mchId
=
"20001223"
;
// 项目ID
static
final
String
payItemId
=
"7000001"
;
// 加签key
static
final
String
reqKey
=
"M86l522AV6q613Ii4W6u8K48uW8vM1N6bFgyv769220MdYe9u37N4y7rI5mQ"
;
// 验签key
static
final
String
repKey
=
"Hpcl522AV6q613KIi46u6g6XuW8vM1N8bFgyv769770MdYe9u37M4y7rIpl8"
;
static
final
String
baseUrl
=
"http://localhost:3020/api"
;
static
final
String
baseUrl
=
"http://api.xxpay.org/api"
;
static
final
String
notifyUrl
=
"http://www.baidu.com"
;
// 本地环境测试,可到ngrok.cc网站注册
public
static
void
main
(
String
[]
args
)
{
String
payOrderId
=
payOrderTest
();
// String payOrderId = "pay2016120514591893319913549";
// if(payOrderId != null ) {
// queryOrderTest(payOrderId);
// //iapNotifyTest(payOrderId);
// }
//reissueOrder();
}
// 补单
static
String
reissueOrder
()
{
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<
String
,
Object
>();
paramMap
.
put
(
"mchId"
,
"0000010001"
);
// 商户ID
//pay2016110217365533065720596 易宝订单
//pay2016110710140585712982930 京东PC快捷
//pay2016110413295519324497135 支付宝wap
//pay2016110709341803399339691 微信
paramMap
.
put
(
"payOrderId"
,
"pay2016111514582547325887888"
);
String
reqData
=
XXPayUtil
.
genUrlParams
(
paramMap
);
System
.
out
.
println
(
"请求支付中心补单接口,请求数据:"
+
reqData
);
String
url
=
baseUrl
+
"/pay/reissue_order.htm?"
;
String
result
=
XXPayUtil
.
call4Post
(
url
+
reqData
);
System
.
out
.
println
(
"请求支付中心补单接口,响应数据:"
+
result
);
Map
retMap
=
JSON
.
parseObject
(
result
);
if
(
"SUCCESS"
.
equals
(
retMap
.
get
(
"retCode"
)))
{
System
.
out
.
println
(
"=========支付中心补单验签成功========="
);
}
return
result
;
payOrderTest
();
}
// 统一下单
static
String
payOrderTest
()
{
JSONObject
paramMap
=
new
JSONObject
();
paramMap
.
put
(
"mchId"
,
mchId
);
// 商户ID
paramMap
.
put
(
"mchOrderNo"
,
System
.
currentTimeMillis
());
// 商户订单号
paramMap
.
put
(
"channelId"
,
"WX_NATIVE"
);
// 支付渠道ID, WX_NATIVE,ALIPAY_WAP
paramMap
.
put
(
"amount"
,
1
);
// 支付金额,单位分
paramMap
.
put
(
"currency"
,
"cny"
);
// 币种, cny-人民币
paramMap
.
put
(
"clientIp"
,
"114.112.124.236"
);
// 用户地址,IP或手机号
paramMap
.
put
(
"device"
,
"WEB"
);
// 支付公司标识
paramMap
.
put
(
"mchId"
,
mchId
);
// 商户ID
paramMap
.
put
(
"mchOrderNo"
,
System
.
currentTimeMillis
());
// 商户订单号
paramMap
.
put
(
"channelId"
,
"WX_NATIVE"
);
// 支付渠道ID, WX_NATIVE,ALIPAY_WAP
paramMap
.
put
(
"amount"
,
1
00
);
// 支付金额,单位分
paramMap
.
put
(
"currency"
,
"cny"
);
// 币种, cny-人民币
paramMap
.
put
(
"clientIp"
,
"114.112.124.236"
);
// 用户地址
paramMap
.
put
(
"device"
,
"WEB"
);
// 设备
paramMap
.
put
(
"subject"
,
"XXPAY支付测试"
);
paramMap
.
put
(
"body"
,
"XXPAY支付测试"
);
paramMap
.
put
(
"notifyUrl"
,
"http://baidu.com"
);
// 回调URL
//paramMap.put("notifyUrl", "http://xxpay.ngrok.cc/notify/pay/wxPayNotifyRes.htm");
paramMap
.
put
(
"param1"
,
""
);
// 扩展参数1
paramMap
.
put
(
"param2"
,
""
);
// 扩展参数2
paramMap
.
put
(
"notifyUrl"
,
notifyUrl
);
// 回调URL
paramMap
.
put
(
"param1"
,
""
);
// 扩展参数1
paramMap
.
put
(
"param2"
,
""
);
// 扩展参数2
paramMap
.
put
(
"extra"
,
"{\"productId\":\"120989823\",\"openId\":\"o2RvowBf7sOVJf8kJksUEMceaDqo\"}"
);
// 附加参数
String
reqSign
=
PayDigestUtil
.
getSign
(
paramMap
,
reqKey
);
paramMap
.
put
(
"sign"
,
reqSign
);
// 签名
paramMap
.
put
(
"sign"
,
reqSign
);
// 签名
String
reqData
=
"params="
+
paramMap
.
toJSONString
();
System
.
out
.
println
(
"请求支付中心下单接口,请求数据:"
+
reqData
);
String
url
=
baseUrl
+
"/pay/create_order?"
;
String
result
=
XXPayUtil
.
call4Post
(
url
+
reqData
);
System
.
out
.
println
(
"请求支付中心下单接口,响应数据:"
+
result
);
Map
retMap
=
JSON
.
parseObject
(
result
);
if
(
"SUCCESS"
.
equals
(
retMap
.
get
(
"retCode"
)))
{
if
(
"SUCCESS"
.
equals
(
retMap
.
get
(
"retCode"
))
&&
"SUCCESS"
.
equalsIgnoreCase
(
retMap
.
get
(
"resCode"
).
toString
())
)
{
// 验签
String
checkSign
=
PayDigestUtil
.
getSign
(
retMap
,
repKey
,
"sign"
,
"payParams"
);
String
retSign
=
(
String
)
retMap
.
get
(
"sign"
);
...
...
@@ -99,102 +67,4 @@ public class PayOrderDemo {
return
retMap
.
get
(
"payOrderId"
)+
""
;
}
static
void
queryOrderTest
(
String
payOrderId
)
{
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<
String
,
Object
>();
paramMap
.
put
(
"mchId"
,
mchId
);
// 商户ID
paramMap
.
put
(
"payItemId"
,
payItemId
);
// 业务项目ID
paramMap
.
put
(
"rechargeId"
,
"20160505000968"
);
// 业务系统流水号
paramMap
.
put
(
"payOrderId"
,
payOrderId
);
// 支付单号
String
reqSign
=
PayDigestUtil
.
getSign
(
paramMap
,
reqKey
);
paramMap
.
put
(
"sign"
,
reqSign
);
// 签名
String
reqData
=
XXPayUtil
.
genUrlParams
(
paramMap
);
System
.
out
.
println
(
"请求支付中心查单接口,请求数据:"
+
reqData
);
String
url
=
baseUrl
+
"/pay/query_order.htm?"
;
String
result
=
XXPayUtil
.
call4Post
(
url
+
reqData
);
System
.
out
.
println
(
"请求支付中心查单接口,响应数据:"
+
result
);
Map
retMap
=
JSON
.
parseObject
(
result
);
// fastJson速度更快
if
(
"SUCCESS"
.
equals
(
retMap
.
get
(
"retCode"
)))
{
// 验签
String
checkSign
=
PayDigestUtil
.
getSign
(
retMap
,
repKey
,
"sign"
);
String
retSign
=
(
String
)
retMap
.
get
(
"sign"
);
if
(
checkSign
.
equals
(
retSign
))
{
System
.
out
.
println
(
"=========查询支付订单验签成功========="
);
}
else
{
System
.
err
.
println
(
"=========查询支付订单验签失败========="
);
}
}
}
//
static
void
iapNotifyTest
(
String
payOrderId
)
{
// "mchId", "payOrderId", "userId", "rechargeId", "receiptData", "transactionId", "sign"
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<
String
,
Object
>();
String
receiptData
=
"MIITvQYJKoZIhvcNAQcCoIITrjCCE6oCAQExCzAJBgUrDgMCGgUAMIIDXgYJKoZIhvcNAQcBoIIDTwSCA0sxggNHMAoCAQgCAQEEAhYAMAoCARQCAQEEAgwAMAsCAQECAQEEAwIBADALAgEDAgEBBAMMATEwCwIBCwIBAQQDAgEAMAsCAQ4CAQEEAwIBUjALAgEPAgEBBAMCAQAwCwIBEAIBAQQDAgEAMAsCARkCAQEEAwIBAzAMAgEKAgEBBAQWAjQrMA0CAQ0CAQEEBQIDATmsMA0CARMCAQEEBQwDMS4wMA4CAQkCAQEEBgIEUDI0NzAYAgEEAgECBBAoIFpp8t1Yrtx292vHQz30MBkCAQICAQEEEQwPY29tLjUxdnYudnZsaXZlMBsCAQACAQEEEwwRUHJvZHVjdGlvblNhbmRib3gwHAIBBQIBAQQUMuTDMb2ayCzKnlUA3NGDBvKJeq0wHgIBDAIBAQQWFhQyMDE2LTA3LTIwVDA3OjU5OjA0WjAeAgESAgEBBBYWFDIwMTMtMDgtMDFUMDc6MDA6MDBaMEoCAQYCAQEEQqYF5U/8dUbixwRRUQc63fXCzqqV30Bm7dYJABNpREP8v6dtXpuKttS8YskIxCiKJCgySI1ambt4NJRvN4e+HdImjDBKAgEHAgEBBEKYQ1pSzfvdqYuvoe+qRcK/Xl5QjqqSpvPW/w05calaMRyFBHZyzYnyn22+Ci+3m21/S6d/yR4Zq1/wA18PwUz+iUcwggFMAgERAgEBBIIBQjGCAT4wCwICBqwCAQEEAhYAMAsCAgatAgEBBAIMADALAgIGsAIBAQQCFgAwCwICBrICAQEEAgwAMAsCAgazAgEBBAIMADALAgIGtAIBAQQCDAAwCwICBrUCAQEEAgwAMAsCAga2AgEBBAIMADAMAgIGpQIBAQQDAgEBMAwCAgarAgEBBAMCAQEwDAICBq4CAQEEAwIBADAMAgIGrwIBAQQDAgEAMAwCAgaxAgEBBAMCAQAwEgICBqYCAQEECQwHNjAxMDAwMTAbAgIGpwIBAQQSDBAxMDAwMDAwMjI0NjY2Nzc5MBsCAgapAgEBBBIMEDEwMDAwMDAyMjQ2NjY3NzkwHwICBqgCAQEEFhYUMjAxNi0wNy0yMFQwNzo1OTowNFowHwICBqoCAQEEFhYUMjAxNi0wNy0yMFQwNzo1OTowNFqggg5lMIIFfDCCBGSgAwIBAgIIDutXh+eeCY0wDQYJKoZIhvcNAQEFBQAwgZYxCzAJBgNVBAYTAlVTMRMwEQYDVQQKDApBcHBsZSBJbmMuMSwwKgYDVQQLDCNBcHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9uczFEMEIGA1UEAww7QXBwbGUgV29ybGR3aWRlIERldmVsb3BlciBSZWxhdGlvbnMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTUxMTEzMDIxNTA5WhcNMjMwMjA3MjE0ODQ3WjCBiTE3MDUGA1UEAwwuTWFjIEFwcCBTdG9yZSBhbmQgaVR1bmVzIFN0b3JlIFJlY2VpcHQgU2lnbmluZzEsMCoGA1UECwwjQXBwbGUgV29ybGR3aWRlIERldmVsb3BlciBSZWxhdGlvbnMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApc+B/SWigVvWh+0j2jMcjuIjwKXEJss9xp/sSg1Vhv+kAteXyjlUbX1/slQYncQsUnGOZHuCzom6SdYI5bSIcc8/W0YuxsQduAOpWKIEPiF41du30I4SjYNMWypoN5PC8r0exNKhDEpYUqsS4+3dH5gVkDUtwswSyo1IgfdYeFRr6IwxNh9KBgxHVPM3kLiykol9X6SFSuHAnOC6pLuCl2P0K5PB/T5vysH1PKmPUhrAJQp2Dt7+mf7/wmv1W16sc1FJCFaJzEOQzI6BAtCgl7ZcsaFpaYeQEGgmJjm4HRBzsApdxXPQ33Y72C3ZiB7j7AfP4o7Q0/omVYHv4gNJIwIDAQABo4IB1zCCAdMwPwYIKwYBBQUHAQEEMzAxMC8GCCsGAQUFBzABhiNodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDAzLXd3ZHIwNDAdBgNVHQ4EFgQUkaSc/MR2t5+givRN9Y82Xe0rBIUwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBSIJxcJqbYYYIvs67r2R1nFUlSjtzCCAR4GA1UdIASCARUwggERMIIBDQYKKoZIhvdjZAUGATCB/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMA4GA1UdDwEB/wQEAwIHgDAQBgoqhkiG92NkBgsBBAIFADANBgkqhkiG9w0BAQUFAAOCAQEADaYb0y4941srB25ClmzT6IxDMIJf4FzRjb69D70a/CWS24yFw4BZ3+Pi1y4FFKwN27a4/vw1LnzLrRdrjn8f5He5sWeVtBNephmGdvhaIJXnY4wPc/zo7cYfrpn4ZUhcoOAoOsAQNy25oAQ5H3O5yAX98t5/GioqbisB/KAgXNnrfSemM/j1mOC+RNuxTGf8bgpPyeIGqNKX86eOa1GiWoR1ZdEWBGLjwV/1CKnPaNmSAMnBjLP4jQBkulhgwHyvj3XKablbKtYdaG6YQvVMpzcZm8w7HHoZQ/Ojbb9IYAYMNpIr7N4YtRHaLSPQjvygaZwXG56AezlHRTBhL8cTqDCCBCIwggMKoAMCAQICCAHevMQ5baAQMA0GCSqGSIb3DQEBBQUAMGIxCzAJBgNVBAYTAlVTMRMwEQYDVQQKEwpBcHBsZSBJbmMuMSYwJAYDVQQLEx1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEWMBQGA1UEAxMNQXBwbGUgUm9vdCBDQTAeFw0xMzAyMDcyMTQ4NDdaFw0yMzAyMDcyMTQ4NDdaMIGWMQswCQYDVQQGEwJVUzETMBEGA1UECgwKQXBwbGUgSW5jLjEsMCoGA1UECwwjQXBwbGUgV29ybGR3aWRlIERldmVsb3BlciBSZWxhdGlvbnMxRDBCBgNVBAMMO0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyjhUpstWqsgkOUjpjO7sX7h/JpG8NFN6znxjgGF3ZF6lByO2Of5QLRVWWHAtfsRuwUqFPi/w3oQaoVfJr3sY/2r6FRJJFQgZrKrbKjLtlmNoUhU9jIrsv2sYleADrAF9lwVnzg6FlTdq7Qm2rmfNUWSfxlzRvFduZzWAdjakh4FuOI/YKxVOeyXYWr9Og8GN0pPVGnG1YJydM05V+RJYDIa4Fg3B5XdFjVBIuist5JSF4ejEncZopbCj/Gd+cLoCWUt3QpE5ufXN4UzvwDtIjKblIV39amq7pxY1YNLmrfNGKcnow4vpecBqYWcVsvD95Wi8Yl9uz5nd7xtj/pJlqwIDAQABo4GmMIGjMB0GA1UdDgQWBBSIJxcJqbYYYIvs67r2R1nFUlSjtzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFCvQaUeUdgn+9GuNLkCm90dNfwheMC4GA1UdHwQnMCUwI6AhoB+GHWh0dHA6Ly9jcmwuYXBwbGUuY29tL3Jvb3QuY3JsMA4GA1UdDwEB/wQEAwIBhjAQBgoqhkiG92NkBgIBBAIFADANBgkqhkiG9w0BAQUFAAOCAQEAT8/vWb4s9bJsL4/uE4cy6AU1qG6LfclpDLnZF7x3LNRn4v2abTpZXN+DAb2yriphcrGvzcNFMI+jgw3OHUe08ZOKo3SbpMOYcoc7Pq9FC5JUuTK7kBhTawpOELbZHVBsIYAKiU5XjGtbPD2m/d73DSMdC0omhz+6kZJMpBkSGW1X9XpYh3toiuSGjErr4kkUqqXdVQCprrtLMK7hoLG8KYDmCXflvjSiAcp/3OIK5ju4u+y6YpXzBWNBgs0POx1MlaTbq/nJlelP5E3nJpmB6bz5tCnSAXpm4S6M9iGKxfh44YGuv9OQnamt86/9OBqWZzAcUaVc7HGKgrRsDwwVHzCCBLswggOjoAMCAQICAQIwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UEBhMCVVMxEzARBgNVBAoTCkFwcGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYwFAYDVQQDEw1BcHBsZSBSb290IENBMB4XDTA2MDQyNTIxNDAzNloXDTM1MDIwOTIxNDAzNlowYjELMAkGA1UEBhMCVVMxEzARBgNVBAoTCkFwcGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYwFAYDVQQDEw1BcHBsZSBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5JGpCR+R2x5HUOsF7V55hC3rNqJXTFXsixmJ3vlLbPUHqyIwAugYPvhQCdN/QaiY+dHKZpwkaxHQo7vkGyrDH5WeegykR4tb1BY3M8vED03OFGnRyRly9V0O1X9fm/IlA7pVj01dDfFkNSMVSxVZHbOU9/acns9QusFYUGePCLQg98usLCBvcLY/ATCMt0PPD5098ytJKBrI/s61uQ7ZXhzWyz21Oq30Dw4AkguxIRYudNU8DdtiFqujcZJHU1XBry9Bs/j743DN5qNMRX4fTGtQlkGJxHRiCxCDQYczioGxMFjsWgQyjGizjx3eZXP/Z15lvEnYdp8zFGWhd5TJLQIDAQABo4IBejCCAXYwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCvQaUeUdgn+9GuNLkCm90dNfwheMB8GA1UdIwQYMBaAFCvQaUeUdgn+9GuNLkCm90dNfwheMIIBEQYDVR0gBIIBCDCCAQQwggEABgkqhkiG92NkBQEwgfIwKgYIKwYBBQUHAgEWHmh0dHBzOi8vd3d3LmFwcGxlLmNvbS9hcHBsZWNhLzCBwwYIKwYBBQUHAgIwgbYagbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjANBgkqhkiG9w0BAQUFAAOCAQEAXDaZTC14t+2Mm9zzd5vydtJ3ME/BH4WDhRuZPUc38qmbQI4s1LGQEti+9HOb7tJkD8t5TzTYoj75eP9ryAfsfTmDi1Mg0zjEsb+aTwpr/yv8WacFCXwXQFYRHnTTt4sjO0ej1W8k4uvRt3DfD0XhJ8rxbXjt57UXF6jcfiI1yiXV2Q/Wa9SiJCMR96Gsj3OBYMYbWwkvkrL4REjwYDieFfU9JmcgijNq9w2Cz97roy/5U2pbZMBjM3f3OgcsVuvaDyEO2rpzGU+12TZ/wYdV2aeZuTJC+9jVcZ5+oVK3G72TQiQSKscPHbZNnF5jyEuAF1CqitXa5PzQCQc3sHV1ITGCAcswggHHAgEBMIGjMIGWMQswCQYDVQQGEwJVUzETMBEGA1UECgwKQXBwbGUgSW5jLjEsMCoGA1UECwwjQXBwbGUgV29ybGR3aWRlIERldmVsb3BlciBSZWxhdGlvbnMxRDBCBgNVBAMMO0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zIENlcnRpZmljYXRpb24gQXV0aG9yaXR5AggO61eH554JjTAJBgUrDgMCGgUAMA0GCSqGSIb3DQEBAQUABIIBAB/qcG2kbcE7gIX3Ki/cfI4oj6yG54/U+L+18H37cXQp7/QP7tBYmuzcBICz+CKsxxQtbuGAVgFGUqzgwEN8Ru2c46EAcEGP+KGf/1qTG1iwuDG7yeABnp63/SJALRh+tKX4x+SDTMT0b6QVMYo9X2CXfTzW72/D0Pwq/ZYA4ALqE/J0rQrTYBEUaTIEriyya0/4phZ3QBgRs//zvJBmxR/957pP1tq7UkAMfd8fA3XnnTirxKXZtD/9M5vtUF80TURe9G39nuVj/Z94AMmBKxa4CPMNIQOFRLK2TBGiHF4FbKeSbPEhSJ4OQ74bvnlINKbV96C1REpaNYVfNc6rY+E="
;
paramMap
.
put
(
"mchId"
,
mchId
);
// 商户ID
paramMap
.
put
(
"payOrderId"
,
payOrderId
);
// 支付单号
paramMap
.
put
(
"receiptData"
,
receiptData
);
paramMap
.
put
(
"transactionId"
,
"111"
);
// 苹果支付ID
paramMap
.
put
(
"userId"
,
1984
l
);
// 用户ID
String
reqSign
=
PayDigestUtil
.
getSign
(
paramMap
,
reqKey
);
paramMap
.
put
(
"sign"
,
reqSign
);
// 签名
try
{
paramMap
.
put
(
"receiptData"
,
URLEncoder
.
encode
(
receiptData
,
"UTF-8"
));
// 苹果支付凭据
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
printStackTrace
();
}
String
reqData
=
XXPayUtil
.
genUrlParams
(
paramMap
);
System
.
out
.
println
(
"请求支付中心苹果通知接口,请求数据:"
+
reqData
);
String
url
=
baseUrl
+
"/notify/iapPayNotifyRes.htm?"
;
String
result
=
XXPayUtil
.
call4Post
(
url
+
reqData
);
System
.
out
.
println
(
"请求支付中心苹果通知接口,响应数据:"
+
result
);
Map
retMap
=
JSON
.
parseObject
(
result
);
// fastJson速度更快
if
(
"SUCCESS"
.
equals
(
retMap
.
get
(
"retCode"
)))
{
// 验签
String
checkSign
=
PayDigestUtil
.
getSign
(
retMap
,
repKey
,
"sign"
);
String
retSign
=
(
String
)
retMap
.
get
(
"sign"
);
if
(
checkSign
.
equals
(
retSign
))
{
System
.
out
.
println
(
"=========苹果支付验证凭据验签成功========="
);
}
else
{
System
.
err
.
println
(
"=========苹果支付验证凭据验签失败========="
);
}
}
}
static
void
iapNotifyTest2
(
String
payOrderId
)
{
// "mchId", "payOrderId", "userId", "rechargeId", "receiptData", "transactionId", "sign"
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<
String
,
Object
>();
paramMap
.
put
(
"mchId"
,
mchId
);
// 商户ID
//paramMap.put("rechargeId", "20160505000968"); // 业务系统流水号
paramMap
.
put
(
"payOrderId"
,
payOrderId
);
// 支付单号
try
{
paramMap
.
put
(
"receiptData"
,
URLEncoder
.
encode
(
"abc+123"
,
"UTF-8"
));
// 苹果支付凭据
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
printStackTrace
();
}
paramMap
.
put
(
"transactionId"
,
""
);
// 苹果支付ID
paramMap
.
put
(
"userId"
,
1984
l
);
// 用户ID
String
reqSign
=
PayDigestUtil
.
getSign
(
paramMap
,
reqKey
,
"receiptData"
);
paramMap
.
put
(
"sign"
,
reqSign
);
// 签名
String
reqData
=
XXPayUtil
.
genUrlParams
(
paramMap
);
System
.
out
.
println
(
"请求支付中心苹果通知接口,请求数据:"
+
reqData
);
String
url
=
"http://localhost:8088/h5/test.html?"
;
String
result
=
XXPayUtil
.
call4Post
(
url
+
reqData
);
System
.
out
.
println
(
"请求支付中心苹果通知接口,响应数据:"
+
result
);
Map
retMap
=
JSON
.
parseObject
(
result
);
// fastJson速度更快
if
(
"SUCCESS"
.
equals
(
retMap
.
get
(
"retCode"
)))
{
// 验签
String
checkSign
=
PayDigestUtil
.
getSign
(
retMap
,
repKey
,
"sign"
);
String
retSign
=
(
String
)
retMap
.
get
(
"sign"
);
if
(
checkSign
.
equals
(
retSign
))
{
System
.
out
.
println
(
"=========苹果支付验证凭据验签成功========="
);
}
else
{
System
.
err
.
println
(
"=========苹果支付验证凭据验签失败========="
);
}
}
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment