一、下载官方的demo(当面付SDK&DEMO)
https://docs.open.alipay.com/194/105201
选择 java 下载即可
二、支付宝签名生成工具下载
https://docs.open.alipay.com/291/105971/
等会我们需要使用到这个工具,来生成我们的公钥和私钥
三、运行官网demo
1. 原始的配置文件 zfbinfo.properties
# 支付宝网关名、partnerId和appId
open_api_domain = https://openapi.alipay.com/gateway.do
mcloud_api_domain = http://mcloudmonitor.com/gateway.do
pid = 此处请填写你的PID
appid = 此处请填写你当面付的APPID
# RSA私钥、公钥和支付宝公钥
private_key = 此处请填写你的商户私钥且转PKCS8格式
public_key = 此处请填写你的商户公钥
#SHA1withRsa对应支付宝公钥
#alipay_public_key = MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDI6d306Q8fIfCOaTXyiUeJHkrIvYISRcc73s3vF1ZT7XN8RNPwJxo8pWaJMmvyTn9N4HQ632qJBVHf8sxHi/fEsraprwCtzvzQETrNRwVxLO5jVmRGi60j8Ue1efIlzPXV9je9mkjzOmdssymZkh2QhUrCmZYI/FCEa3/cNMW0QIDAQAB
#SHA256withRsa对应支付宝公钥
alipay_public_key = MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjrEVFMOSiNJXaRNKicQuQdsREraftDA9Tua3WNZwcpeXeh8Wrt+V9JilLqSa7N7sVqwpvv8zWChgXhX/A96hEg97Oxe6GKUmzaZRNh0cZZ88vpkn5tlgL4mH/dhSr3Ip00kvM4rHq9PwuT4k7z1DpZAf1eghK8Q5BgxL88d0X07m9X96Ijd0yMkXArzD7jg+noqfbztEKoH3kPMRJC2w4ByVdweWUT2PwrlATpZZtYLmtDvUKG/sOkNAIKEMg3Rut1oKWpjyYanzDgS7Cg3awr1KPTl9rHCazk15aNYowmYtVabKwbGVToCAGK+qQ1gT3ELhkGnf3+h53fukNqRH+wIDAQAB
# 签名类型: RSA->SHA1withRsa,RSA2->SHA256withRsa
sign_type = RSA2
# 当面付最大查询次数和查询间隔(毫秒)
max_query_retry = 5
query_duration = 5000
# 当面付最大撤销次数和撤销间隔(毫秒)
max_cancel_retry = 3
cancel_duration = 2000
# 交易保障线程第一次调度延迟和调度间隔(秒)
heartbeat_delay = 5
heartbeat_duration = 900
2. 打开支付宝沙箱应用介绍
https://openhome.alipay.com/platform/appDaily.htm?tab=info
3. 配置 properties 文件
注:我们是沙箱环境,官网 zfbinfo.properties 文件配置的是正式的网关,我们要改成测试网关。
4. RSA私钥、公钥和支付宝公钥配置
打开我们前面下载的RSA签名验签工具(windows_V1.4),点击 RSA签名验签工具.bat 运行即可
private_key:商户应用私钥
public_key:商户应用公钥
alipay_public_key:支付宝公钥
具体配置如下:
RSA2(SHA256)密钥(
推荐):选择
验签工具 里面秘钥长度为
2048的 RSA(SHA1)密钥:选择
验签工具 里面秘钥长度为
1024的
商户应用私钥 ---> private_key商户应用公钥 ---> public_key
可以看到 SHA1 加密模式已经被注释掉了,我们不用管。我们使用的是 RSA2(SHA256)密钥
#SHA1withRsa对应支付宝公钥
#alipay_public_key = MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDI6d306Q8fIfCOaTXyiUeJHkrIvYISRcc73s3vF1ZT7XN8RNPwJxo8pWaJMmvyTn9N4HQ632qJBVHf8sxHi/fEsraprwCtzvzQETrNRwVxLO5jVmRGi60j8Ue1efIlzPXV9je9mkjzOmdssymZkh2QhUrCmZYI/FCEa3/cNMW0QIDAQAB
修改 SHA256withRsa对应支付宝公钥
alipay_public_key = 上面复制的值
如果使用的是 RSA2(SHA256)密钥 不需要对签名类型做修改
# 签名类型: RSA->SHA1withRsa,RSA2->SHA256withRsa
sign_type = RSA2
# 支付宝网关名、partnerId和appId
# 1. 支付宝网关
open_api_domain = https://openapi.alipaydev.com/gateway.do
mcloud_api_domain = http://mcloudmonitor.com/gateway.do
# 2. 商户UID
pid = 2088102178992386
# 3. APPID
appid = 2016101000656133
# RSA私钥、公钥和支付宝公钥
# 4 .RSA签名验签工具 生成的秘钥复制即可
# 商户应用私钥 ---> private_key
# 商户应用公钥 ---> public_key
private_key = MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCN6RUGj4UQxgzeXV4BxvKfmTZkLggroJLnGv7nTMvtscOC1QTXFxbtpj0rpVIGy/bqrIYZ2qkhggYefTtaVy71fSQSBt7s/USgR22r3DGmuoAu4TUxr/AD33F4O4S75EfJIGCkiJXmzh91Xv1D1Cq/Kzp9Uy1SmvIu5V2NJ+xDTvabXEc4mB/JFh4Zlji5cu+ZY4QIH4v+3tGR4RaX06mQ4oMqkhoppv9F+9iMRW9mofL8ysUPdQOPOonRCSyRAPeKQNPQjs3aTGlz9zmba570qiSLlmcG8CtRzqE0+lllhe7ilwcHZlt2K2wmlcUddK1zvRzuJsF17X1Tu/lkNzN5AgMBAAECggEAHHsYBi4NtbUZ5hL1CARGs3NLcEWwzBi5AvrvB7ro/rZ7l6lrBEQVDPMdOcI/OS/8SVMAwvWYlioDUmEt5U60FP7dm2SXnxahjE1pnGFf8adijIYUZ/l4gT56BnhjhlYldh8yZjMnaqAZvjOnPtK5FY72eSqVYQvJ6VGNOgQ2LbfBfOcRSbtk3WPuGmJHaNWSCMwHuu90RaHPAHOU867Bb0IpF7X+QeRnInjp6bVA/AIqVlYPTiviedtS/IE417eIkbsdJoXxV+CC+bWHBDrUdilhot/5NAJt6BiJNeT8fXqTU9a+JiqbTMcSvxVUChgSaDPD57116sagHAQrh/WK9QKBgQDRTv2CZaFd0aM2NzEWHkkcYQk3/usjnprHQxVvZ7cSjcetRmN+nVkvJOQb8NUDnrdCJqplPeL7g9ivKFFJy9A8WKuo+Wb4FpULLZW4gSu7p+Y0NSheMp0PCiyC7lNGm2PVhYfjn2VdVMRj60MBjtnw0dOSv4+KnD3IXezI06m6jwKBgQCtkS5wGsAh2MJiUk0fHrc/XsWbaGBaB6rkIqQ7by2jLSc/CMVyxlmWdk1Fyp1jGF/4MsiBNorCUA1s97IyH4MOHxRNtMgeDfOwDh9QrsbLKmV32ux3V42PagQmDYss0oVEn0qKVGPCct5K7eCrAXRxYdr6q3C0A4qNxKjCNKBVdwKBgFAnSKuL0czEwBS98/09YdANVONtqow8a5dNGENOW2wugT3Yy7cr+IA2R2hvxJMbT6B0gCI/HdIlfnAtJ1v0Qe0qI6qUv5rXwwHB1ikOxjmZpW1uweO4zC57Pepx69AJJ6UX+p7vZnjkQkTlTgalts4i/DuhQg3ZoUs+tLN/Yur/AoGACm9D/3FcQ6yoYwjXohtSoPitoJ4xzLfRSk3a2cfhUoIQbfW1CSVrlWQfWSbJN3/rpRxIeZwx02TEqdxqViEW2+56ZgGMVmI4WElBELSxNt2hpAcBWFtnI0wYW8FMsLEnWezJqm9QYAxP2OlcLGu1+GsNoyxTZj8gQU2lZ6eKTBkCgYEAglNDo5ermrvaiwrYSdgR9/bdofMirFzxWmcLS2feBOc9JK6jZ2IExfMBp/hcbyxCzhwEKhQm+k2dUfwppuYa51mjexpNWQDeK8g4c6Vfb04yuBcS9zyrBvEp39/NL/c/APqUrxHSO5TZlne75uuF+nXqxY9vGHi5FopbpNb9IvY=
public_key = MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjekVBo+FEMYM3l1eAcbyn5k2ZC4IK6CS5xr+50zL7bHDgtUE1xcW7aY9K6VSBsv26qyGGdqpIYIGHn07Wlcu9X0kEgbe7P1EoEdtq9wxprqALuE1Ma/wA99xeDuEu+RHySBgpIiV5s4fdV79Q9Qqvys6fVMtUpryLuVdjSfsQ072m1xHOJgfyRYeGZY4uXLvmWOECB+L/t7RkeEWl9OpkOKDKpIaKab/RfvYjEVvZqHy/MrFD3UDjzqJ0QkskQD3ikDT0I7N2kxpc/c5m2ue9Koki5ZnBvArUc6hNPpZZYXu4pcHB2ZbditsJpXFHXStc70c7ibBde19U7v5ZDczeQIDAQAB
#SHA256withRsa对应支付宝公钥
# 5. 复制网页生成的支付宝的公钥
alipay_public_key = MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgTbbD0e9sHFsy1jzBgNlkb+ywe8uR0GIoi8nQ2srVjqPu6qOXdgQ7U42ExvVroVzNtuyNlbvsYSilX0D5gTrxYiovxjvYJPoSXqIaCuYaVCIAdHJauVGKHVbGx/cuk6vwNqh4xOf+sbu/axmHbuiYWx7CnA2ikgxMzrmlVsogmOYcFOawDlE1QDy1MuXJ8EirLclW9OaH5fRSRbKlagRwMwRzIHPJEv6RpVKWr8rFkuEqVK8pmwHS3xlToEDh0puNPnJI6i/PBx52wevuPhE92DT2A+Ts4KeDJmU+PjFhWgG6VMxlVjqiRLWIBI3ctCFRAgOxbExYOGYxUEnid/ddQIDAQAB
# 签名类型: RSA->SHA1withRsa,RSA2->SHA256withRsa
sign_type = RSA2
# 当面付最大查询次数和查询间隔(毫秒)
max_query_retry = 5
query_duration = 5000
# 当面付最大撤销次数和撤销间隔(毫秒)
max_cancel_retry = 3
cancel_duration = 2000
# 交易保障线程第一次调度延迟和调度间隔(秒)
heartbeat_delay = 5
heartbeat_duration = 900
三、运行主函数
七月 18, 2019 2:11:48 下午 com.alipay.demo.trade.config.Configs init
信息: 配置文件名: zfbinfo.properties
七月 18, 2019 2:11:48 下午 com.alipay.demo.trade.config.Configs init
信息: Configs{支付宝openapi网关: https://openapi.alipaydev.com/gateway.do
, 支付宝mcloudapi网关域名: http://mcloudmonitor.com/gateway.do
, pid: 2088102178992386
, appid: 2016101000656133
, 商户RSA私钥: MIIEvQ******L+Pyg=
, 商户RSA公钥: MIIBIj******IDAQAB
, 支付宝RSA公钥: MIIBIj******IDAQAB
, 签名类型: RSA2
, 查询重试次数: 5
, 查询间隔(毫秒): 5000
, 撤销尝试次数: 3
, 撤销重试间隔(毫秒): 2000
, 交易保障调度延迟(秒): 5
, 交易保障调度间隔(秒): 900
}
七月 18, 2019 2:11:49 下午 com.alipay.demo.trade.service.impl.AbsAlipayTradeService tradePrecreate
信息: trade.precreate bizContent:{"out_trade_no":"tradeprecreate15634303089764811488","seller_id":"","total_amount":"0.01","undiscountable_amount":"0","subject":"xxx品牌xxx门店当面付扫码消费","body":"购买商品3件共20.00元","goods_detail":[{"goods_id":"goods_id001","goods_name":"xxx小面包","quantity":1,"price":"10"},{"goods_id":"goods_id002","goods_name":"xxx牙刷","quantity":2,"price":"5"}],"operator_id":"test_operator_id","store_id":"test_store_id","extend_params":{"sys_service_provider_id":"2088100200300400500"},"timeout_express":"120m"}
七月 18, 2019 2:11:51 下午 com.alipay.api.internal.util.AlipayLogger logBizSummary
信息: Summary^_^10000^_^null^_^ProtocalMustParams:charset=utf-8&method=alipay.trade.precreate&sign=dzaQpETeRhv0FwSGeyT8ucS4CZ82gn4ae33ClQOEnUhz2ZpHweY/ZasOgsTkz5Z9RfQq3w629/7LRV/BlJbPnWxxx+WPsDrqrviACIUt5IftQBE8sZ1ny57nQe7o++PFHlm2szRMSP+8MzTB2XRTpLovzOkaYiaW2EGescc0G+UIZ3I5DimCjdBLXyCbIjUsOFpQoEVN5q87wWNsxx9/ZBa8xDOBSzZwaoyu4Yj3S4UdowsygS9+fzvn8o/u13MWEOGzANspRbzZf82KOVHbYOiQ5USrIlbtKoa1RUwXeOLsthXdVVWZO8OscVkJpBsvfyfqNCMjMvle7AsQaPFBHQ==&version=1.0&app_id=2016101000656133&sign_type=RSA2×tamp=2019-07-18 14:11:49^_^ProtocalOptParams:alipay_sdk=alipay-sdk-java-3.3.0&format=json^_^ApplicationParams:biz_content={"out_trade_no":"tradeprecreate15634303089764811488","seller_id":"","total_amount":"0.01","undiscountable_amount":"0","subject":"xxx品牌xxx门店当面付扫码消费","body":"购买商品3件共20.00元","goods_detail":[{"goods_id":"goods_id001","goods_name":"xxx小面包","quantity":1,"price":"10"},{"goods_id":"goods_id002","goods_name":"xxx牙刷","quantity":2,"price":"5"}],"operator_id":"test_operator_id","store_id":"test_store_id","extend_params":{"sys_service_provider_id":"2088100200300400500"},"timeout_express":"120m"}^_^610ms,1370ms,17ms
七月 18, 2019 2:11:51 下午 com.alipay.demo.trade.service.impl.AbsAlipayService getResponse
信息: {"alipay_trade_precreate_response":{"code":"10000","msg":"Success","out_trade_no":"tradeprecreate15634303089764811488","qr_code":"https:\/\/qr.alipay.com\/bax06718pwilg9nd9rw40026"},"sign":"ZlWX9SePMgtreMdTjzOvL0Qg05kw/eW5dJNFfXMVlIfqr+zoeELsfatHg4EmErOnOBSqB2OPUyibcG5PHXR4TL9H/ie32zC4xUlGd0/lGMH4yxPSpgoHInYE/oYMxFVE74x/Qy/ldS+hLxKoimMOA9qd68yVerfWuiuqyRFzIGq5N19wT6243vSyDQKdyqCIhZX2jBj6dqeu7NccSwTQuMDdm3TaHqdc9Mkt/zudkrO+FKs2GWGxs2smBjjse1CwVLrpSnBx0NrCL+55uE8oFZ5mSoAfkfm3h97BlK62+mnIhdPfnK96nbgk2SZ/E87yCu8Lz0pM5vrvq49Or5vsiw=="}
七月 18, 2019 2:11:51 下午 com.alipay.demo.trade.Main test_trade_precreate
信息: 支付宝预下单成功: )
七月 18, 2019 2:11:51 下午 com.alipay.demo.trade.Main dumpResponse
信息: code:10000, msg:Success
七月 18, 2019 2:11:51 下午 com.alipay.demo.trade.Main dumpResponse
信息: body:{"alipay_trade_precreate_response":{"code":"10000","msg":"Success","out_trade_no":"tradeprecreate15634303089764811488","qr_code":"https:\/\/qr.alipay.com\/bax06718pwilg9nd9rw40026"},"sign":"ZlWX9SePMgtreMdTjzOvL0Qg05kw/eW5dJNFfXMVlIfqr+zoeELsfatHg4EmErOnOBSqB2OPUyibcG5PHXR4TL9H/ie32zC4xUlGd0/lGMH4yxPSpgoHInYE/oYMxFVE74x/Qy/ldS+hLxKoimMOA9qd68yVerfWuiuqyRFzIGq5N19wT6243vSyDQKdyqCIhZX2jBj6dqeu7NccSwTQuMDdm3TaHqdc9Mkt/zudkrO+FKs2GWGxs2smBjjse1CwVLrpSnBx0NrCL+55uE8oFZ5mSoAfkfm3h97BlK62+mnIhdPfnK96nbgk2SZ/E87yCu8Lz0pM5vrvq49Or5vsiw=="}
七月 18, 2019 2:11:51 下午 com.alipay.demo.trade.Main test_trade_precreate
信息: filePath:/Users/sudo/Desktop/qr-tradeprecreate15634303089764811488.png
Process finished with exit code 0
请求内容为
{
"out_trade_no": "tradeprecreate15634303089764811488",
"seller_id": "",
"total_amount": "0.01",
"undiscountable_amount": "0",
"subject": "xxx品牌xxx门店当面付扫码消费",
"body": "购买商品3件共20.00元",
"goods_detail": [{
"goods_id": "goods_id001",
"goods_name": "xxx小面包",
"quantity": 1,
"price": "10"
}, {
"goods_id": "goods_id002",
"goods_name": "xxx牙刷",
"quantity": 2,
"price": "5"
}],
"operator_id": "test_operator_id",
"store_id": "test_store_id",
"extend_params": {
"sys_service_provider_id": "2088100200300400500"
},
"timeout_express": "120m"
}
响应内容为
{
"alipay_trade_precreate_response": {
"code": "10000",
"msg": "Success",
"out_trade_no": "tradeprecreate15634303089764811488",
"qr_code": "https:\/\/qr.alipay.com\/bax06718pwilg9nd9rw40026"
},
"sign": "ZlWX9SePMgtreMdTjzOvL0Qg05kw/eW5dJNFfXMVlIfqr+zoeELsfatHg4EmErOnOBSqB2OPUyibcG5PHXR4TL9H/ie32zC4xUlGd0/lGMH4yxPSpgoHInYE/oYMxFVE74x/Qy/ldS+hLxKoimMOA9qd68yVerfWuiuqyRFzIGq5N19wT6243vSyDQKdyqCIhZX2jBj6dqeu7NccSwTQuMDdm3TaHqdc9Mkt/zudkrO+FKs2GWGxs2smBjjse1CwVLrpSnBx0NrCL+55uE8oFZ5mSoAfkfm3h97BlK62+mnIhdPfnK96nbgk2SZ/E87yCu8Lz0pM5vrvq49Or5vsiw=="
}
注:qr_code = https://qr.alipay.com/bax06718pwilg9nd9rw40026 使用二维码生成工具,即可生成相应的二维码,然后使用支付宝扫描即可。