支付宝怎么退出商户版商户版怎么退款

在淘宝买东西,商家要求告知支付宝账号和姓名才能退款,这样账号会有危险吗--在线法律咨询|律师365(64365.com)
大家都在搜:
微信扫一扫 免费问律师
手机扫一扫 法律兜里装
在淘宝买东西,商家要求告知支付宝账号和姓名才能退款,这样账号会有危险吗
黑龙江 七台河
1分钟提交法律咨询 2000多位 信得过的好律师 为您提供专业解答
(咨询请说明来自律师365)
地区:黑龙江 哈尔滨|解答问题:1715条
存在风险,建议谨慎处置。
相关法律咨询
我用自己的支付宝代替别人付款买东西退款了钱是退到别人支付宝上的我登他的支付宝将钱转给我算犯法吗
推u0007荐u0007与u0007支u0007付u0007寶u0007把u0007问u0007题u0007描u0007述u0007清u0007楚u0007我u0007们u0007会u尽u0007快u0007为u0007您u0007处u0007理u0007!u0007业u0007务u0007部uQuuuuuuu0007人u0007工u0007部uQuuuuuuu0007感u0007谢u0007您u0007的u0007支u0007持u0007!u0007我u0007辛u0007辛u0007苦u0007苦u0007从u0007支u0007付u0007宝u0007论u0007坛u0007复u0007制u0007出u0007来u0007的u0007哦u0007!
坏人有我的手持身份证正面反面还有支付宝账号和名字,我现在该怎么办
存在未知风险,建议以后不要随便透露自己的身份信息,软件或银行卡帐号密码等。
淘宝退款预计时间已经超过2天为什么钱还没到帐而且淘宝还支付宝上都显示退款成功这是为什么我的钱到那里去了
你好,看一下退款的流程,问一下淘宝卖家,他们退了的话,就去咨询一下银行方面。
关注此问题的人还看了
相关法律知识
相关律师回复
李建成律师 最近回复:
申维丰律师 最近回复:
俞彬彬律师 最近回复:
周边专业律师
扫描二维码
更多惊喜等着您!
立即提问、免费短信回复
律师365,优质法律服务平台
400-64365-60服务时间:周一至周六8:00~22:00服务指南平台保障律师入驻常见问题
Copyright(C) 成都六四三六五科技有限公司 版权所有 蜀ICP备号 增值电信业务经营许可证(川B2-)
1270律师在线
4217今日解答没有更多推荐了,
不良信息举报
举报内容:
支付宝退款接口(java)
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
java-支付宝支付-支付宝退款
摘要:有兴趣的朋友一起学习java可以加群---《专注JavaWeb开发》群号:码农不容易,码文章更不容易啊,喜欢小编多多支持请点击关注哦,小编会更加努力每天给大家分享技术文章。***************************************支付宝支付Demo***************************************第一步,安装支付宝支付需要的jar到本地maven仓库。1、阿里的支付宝支付需要一个alipay-sdk-java2
有兴趣的朋友一起学习java 可以加群---《专注JavaWeb开发》 群号:
码农不容易,码文章更不容易啊,喜欢小编多多支持请点击关注哦,小编会更加努力每天给大家分享技术文章。
***************************************
支付宝支付Demo***************************************
第一步,安装支付宝支付需要的jar到本地maven仓库。
1、阿里的支付宝支付需要一个alipay-sdk-java30.jar包,我们将jar包放到随便一个盘中,如F:/alipay-sdk-java30.jar
2、cmd开启命令行,进入到maven的目录的bin路径下,然后执行mvn install:install-file -DgroupId=com.alipay -DartifactId=alipay-sdk-java -Dversion=1.0.0 -Dpackaging=jar -Dfile=F:/alipay-sdk-java30.jar
maven安装jar到本地仓库成功截图
3、在项目中引入依赖的jar
com.alipay
alipay-sdk-java
第二步,AliPayConfig类,封装的是一些支付用的appid、alipayKey、商户号等常量
package com.aidongsports.
public class AliPayConfig {
public static String APP_ID=&替换为自己的&;
public static String partner = &替换为自己的&;// 合作身份者ID,以2088开头由16位纯数字组成的字符串56465
public static String APP_PRIVATE_KEY = &替换为自己的&;// 私钥
* 该公钥对应开放平台密钥的支付宝公钥,*/
public static String ALIPAY_PUBLIC_KEY=&替换为自己的&;// 支付宝的公钥
* 这个公钥对应合作伙伴密钥的支付宝公钥,历史接口使用该公钥
public static String ali_public_key1 = &替换为自己的&;
// 调试用,创建TXT日志文件夹路径
public static String log_path = &/usr/local/tomcat/logs&;
public static String CHARSET = &utf-8&;//字符编码
public static String SIGN_TYPE = &RSA&;//签名方式
第三步,写AlipayController类,就是一个简单的支付测试接口,如果大家应用到项目中,可以自己添加一下自己的业务逻辑进去。
package com.mobilepay.alipay.
import com.alibaba.fastjson.JSONO
import com.alipay.api.AlipayApiE
import com.alipay.api.AlipayC
import com.alipay.api.DefaultAlipayC
import com.alipay.api.domain.AlipayTradeAppPayM
import com.alipay.api.request.AlipayTradeAppPayR
import com.alipay.api.request.AlipayTradePayR
import com.alipay.api.request.AlipayTradeRefundR
import com.alipay.api.response.AlipayTradeAppPayR
import com.alipay.api.response.AlipayTradeRefundR
import com.mobilepay.alipay.alipayutils.AliPayC
import com.mobilepay.alipay.alipayutils.AlipayR
import org.apache.log4j.L
import org.springframework.stereotype.C
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.ResponseB
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
* @Author: HONGLINCHEN
* @Description:阿里支付宝支付
* @return:
@Controller
public class AlipayController {
private static final Logger logger = Logger.getLogger(AlipayController.class);
@ResponseBody
@RequestMapping(value = &aliPay&, method = {RequestMethod.GET, RequestMethod.POST})
public String aliPay(String number, double money, HttpServletRequest request, HttpServletResponse response) {
String payUrl =//返回给前台请求支付的url
//实例化客户端
AlipayClient alipayClient = new DefaultAlipayClient(&https://openapi.alipay.com/gateway.do&, AliPayConfig.APP_ID, AliPayConfig.APP_PRIVATE_KEY, &JSON&, AliPayConfig.CHARSET, AliPayConfig.ALIPAY_PUBLIC_KEY, AliPayConfig.SIGN_TYPE);
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
AlipayTradeAppPayRequest aliPayRequest = new AlipayTradeAppPayRequest();
AlipayTradePayRequest request1 = new AlipayTradePayRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
model.setBody(&HONGLINCHEN&);
model.setSubject(&HONGLINCHEN支付宝APP支付测试Java&);
model.setOutTradeNo(number);//商户网站唯一订单号
model.setTimeoutExpress(&30m&);//设置超时时间
model.setTotalAmount(String.valueOf(money));//设置支付金额
model.setProductCode(&QUICK_MSECURITY_PAY&);
aliPayRequest.setBizModel(model);
aliPayRequest.setNotifyUrl(&http://www.aidongsports.com/ali&);//回调地址
AlipayTradeAppPayResponse aliPayResponse = alipayClient.sdkExecute(aliPayRequest);
payUrl = aliPayResponse.getBody();//就是orderString 可以直接给客户端请求,无需再做处理。
} catch (AlipayApiException e) {
e.printStackTrace();
return payU
第四步,测试,我们在浏览器请求这个接口,传递订单号和金额,浏览器就会返回给前台支付参数,前台调用这个支付参数就可以了!(支付标题和内容我们在AlipayController中写死了,这里不用传)
支付宝支付参数
***************************************
支付宝退款Demo***************************************
第一步、支付宝退款常量类AlipayRefundpackage com.mobilepay.alipay.
* @Author: HONGLINCHEN
* @Description:支付宝退款 类
public class AlipayRefund {
private String out_trade_//必须 商户订单号
private String trade_//必须 支付宝交易号
private String refund_//必须 退款金额
private String refund_//可选 代表 退款的原因说明
private String out_request_//可选 标识一次退款请求,同一笔交易多次退款需要保证唯一(就是out_request_no在2次退款一笔交易时,要不一样),如需部分退款,则此参数必传
private String operator_//可选 代表 商户的操作员编号
private String store_//可选 代表 商户的门店编号
private String terminal_//可选 代表 商户的终端编号
public AlipayRefund() {
public String getOut_trade_no() {
return out_trade_
public void setOut_trade_no(String out_trade_no) {
this.out_trade_no = out_trade_
public String getTrade_no() {
return trade_
public void setTrade_no(String trade_no) {
this.trade_no = trade_
public String getRefund_amount() {
return refund_
public void setRefund_amount(String refund_amount) {
this.refund_amount = refund_
public String getRefund_reason() {
return refund_
public void setRefund_reason(String refund_reason) {
this.refund_reason = refund_
public String getOut_request_no() {
return out_request_
public void setOut_request_no(String out_request_no) {
this.out_request_no = out_request_
public String getOperator_id() {
return operator_
public void setOperator_id(String operator_id) {
this.operator_id = operator_
public String getStore_id() {
return store_
public void setStore_id(String store_id) {
this.store_id = store_
public String getTerminal_id() {
return terminal_
public void setTerminal_id(String terminal_id) {
this.terminal_id = terminal_
第二步、SignUtils签名工具类,这个类大家直接复制就好
package com.mobilepay.alipay.
import java.security.KeyF
import java.security.PrivateK
import java.security.spec.PKCS8EncodedKeyS
* @Author: HONGLINCHEN
* @Description:支付宝签名 类
public class SignUtils {
private static final String ALGORITHM = &RSA&;
private static final String SIGN_ALGORITHMS = &SHA1WithRSA&;
private static final String SIGN_SHA256RSA_ALGORITHMS = &SHA256WithRSA&;
private static final String DEFAULT_CHARSET = &UTF-8&;
private static String getAlgorithms(boolean rsa2) {
return rsa2 ? SIGN_SHA256RSA_ALGORITHMS : SIGN_ALGORITHMS;
public static String sign(String content, String privateKey, boolean rsa2) {
PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(
Base64.decode(privateKey));
KeyFactory keyf = KeyFactory.getInstance(ALGORITHM);
PrivateKey priKey = keyf.generatePrivate(priPKCS8);
java.security.Signature signature = java.security.Signature
.getInstance(getAlgorithms(rsa2));
signature.initSign(priKey);
signature.update(content.getBytes(DEFAULT_CHARSET));
byte[] signed = signature.sign();
return Base64.encode(signed);
} catch (Exception e) {
e.printStackTrace();
第三步、Base64加密解密工具类,这个类大家直接复制就好
package com.mobilepay.alipay.
* @Author: HONGLINCHEN
* @Description:Base64加密解密类
public final class Base64 {
private static final int BASELENGTH = 128;
private static final int LOOKUPLENGTH = 64;
private static final int TWENTYFOURBITGROUP = 24;
private static final int EIGHTBIT = 8;
private static final int SIXTEENBIT = 16;
private static final int FOURBYTE = 4;
private static final int SIGN = -128;
private static char PAD = '=';
private static byte[] base64Alphabet = new byte[BASELENGTH];
private static char[] lookUpBase64Alphabet = new char[LOOKUPLENGTH];
for (int i = 0; i & BASELENGTH; ++i) {
base64Alphabet[i] = -1;
for (int i = 'Z'; i &= 'A'; i--) {
base64Alphabet[i] = (byte) (i - 'A');
for (int i = 'z'; i &= 'a'; i--) {
base64Alphabet[i] = (byte) (i - 'a' + 26);
for (int i = '9'; i &= '0'; i--) {
base64Alphabet[i] = (byte) (i - '0' + 52);
base64Alphabet['+'] = 62;
base64Alphabet['/'] = 63;
for (int i = 0; i &= 25; i++) {
lookUpBase64Alphabet[i] = (char) ('A' + i);
for (int i = 26, j = 0; i &= 51; i++, j++) {
lookUpBase64Alphabet[i] = (char) ('a' + j);
for (int i = 52, j = 0; i &= 61; i++, j++) {
lookUpBase64Alphabet[i] = (char) ('0' + j);
lookUpBase64Alphabet[62] = (char) '+';
lookUpBase64Alphabet[63] = (char) '/';
private static boolean isWhiteSpace(char octect) {
return (octect == 0x20 || octect == 0xd || octect == 0xa || octect == 0x9);
private static boolean isPad(char octect) {
return (octect == PAD);
private static boolean isData(char octect) {
return (octect & BASELENGTH &;&; base64Alphabet[octect] != -1);
* Encodes hex octects into Base64
* @param binaryData
* Array containing binaryData
* @return Encoded Base64 array
public static String encode(byte[] binaryData) {
if (binaryData == null) {
int lengthDataBits = binaryData.length * EIGHTBIT;
if (lengthDataBits == 0) {
return &&;
int fewerThan24bits = lengthDataBits % TWENTYFOURBITGROUP;
int numberTriplets = lengthDataBits / TWENTYFOURBITGROUP;
int numberQuartet = fewerThan24bits != 0 ? numberTriplets + 1
char encodedData[] =
encodedData = new char[numberQuartet * 4];
byte k = 0, l = 0, b1 = 0, b2 = 0, b3 = 0;
int encodedIndex = 0;
int dataIndex = 0;
for (int i = 0; i & numberT i++) {
b1 = binaryData[dataIndex++];
b2 = binaryData[dataIndex++];
b3 = binaryData[dataIndex++];
l = (byte) (b2 &; 0x0f);
k = (byte) (b1 &; 0x03);
byte val1 = ((b1 &; SIGN) == 0) ? (byte) (b1 && 2)
: (byte) ((b1) && 2 ^ 0xc0);
byte val2 = ((b2 &; SIGN) == 0) ? (byte) (b2 && 4)
: (byte) ((b2) && 4 ^ 0xf0);
byte val3 = ((b3 &; SIGN) == 0) ? (byte) (b3 && 6)
: (byte) ((b3) && 6 ^ 0xfc);
encodedData[encodedIndex++] = lookUpBase64Alphabet[val1];
encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k && 4)];
encodedData[encodedIndex++] = lookUpBase64Alphabet[(l && 2) | val3];
encodedData[encodedIndex++] = lookUpBase64Alphabet[b3 &; 0x3f];
// form integral number of 6-bit groups
if (fewerThan24bits == EIGHTBIT) {
b1 = binaryData[dataIndex];
k = (byte) (b1 &; 0x03);
byte val1 = ((b1 &; SIGN) == 0) ? (byte) (b1 && 2)
: (byte) ((b1) && 2 ^ 0xc0);
encodedData[encodedIndex++] = lookUpBase64Alphabet[val1];
encodedData[encodedIndex++] = lookUpBase64Alphabet[k && 4];
encodedData[encodedIndex++] = PAD;
encodedData[encodedIndex++] = PAD;
} else if (fewerThan24bits == SIXTEENBIT) {
b1 = binaryData[dataIndex];
b2 = binaryData[dataIndex + 1];
l = (byte) (b2 &; 0x0f);
k = (byte) (b1 &; 0x03);
byte val1 = ((b1 &; SIGN) == 0) ? (byte) (b1 && 2)
: (byte) ((b1) && 2 ^ 0xc0);
byte val2 = ((b2 &; SIGN) == 0) ? (byte) (b2 && 4)
: (byte) ((b2) && 4 ^ 0xf0);
encodedData[encodedIndex++] = lookUpBase64Alphabet[val1];
encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k && 4)];
encodedData[encodedIndex++] = lookUpBase64Alphabet[l && 2];
encodedData[encodedIndex++] = PAD;
return new String(encodedData);
* Decodes Base64 data into octects
* @param encoded
* string containing Base64 data
* @return Array containind decoded data.
public static byte[] decode(String encoded) {
if (encoded == null) {
char[] base64Data = encoded.toCharArray();
// remove white spaces
int len = removeWhiteSpace(base64Data);
if (len % FOURBYTE != 0) {
// should be divisible by four
int numberQuadruple = (len / FOURBYTE);
if (numberQuadruple == 0) {
return new byte[0];
byte decodedData[] =
byte b1 = 0, b2 = 0, b3 = 0, b4 = 0;
char d1 = 0, d2 = 0, d3 = 0, d4 = 0;
int i = 0;
int encodedIndex = 0;
int dataIndex = 0;
decodedData = new byte[(numberQuadruple) * 3];
for (; i & numberQuadruple - 1; i++) {
if (!isData((d1 = base64Data[dataIndex++]))
|| !isData((d2 = base64Data[dataIndex++]))
|| !isData((d3 = base64Data[dataIndex++]))
|| !isData((d4 = base64Data[dataIndex++]))) {
}// if found &no data& just return null
b1 = base64Alphabet[d1];
b2 = base64Alphabet[d2];
b3 = base64Alphabet[d3];
b4 = base64Alphabet[d4];
decodedData[encodedIndex++] = (byte) (b1 && 2 | b2 && 4);
decodedData[encodedIndex++] = (byte) (((b2 &; 0xf) && 4) | ((b3 && 2) &; 0xf));
decodedData[encodedIndex++] = (byte) (b3 && 6 | b4);
if (!isData((d1 = base64Data[dataIndex++]))
|| !isData((d2 = base64Data[dataIndex++]))) {
// if found &no data& just return null
b1 = base64Alphabet[d1];
b2 = base64Alphabet[d2];
d3 = base64Data[dataIndex++];
d4 = base64Data[dataIndex++];
if (!isData((d3)) || !isData((d4))) {// Check if they are PAD characters
if (isPad(d3) &;&; isPad(d4)) {
if ((b2 &; 0xf) != 0)// last 4 bits should be zero
byte[] tmp = new byte[i * 3 + 1];
System.arraycopy(decodedData, 0, tmp, 0, i * 3);
tmp[encodedIndex] = (byte) (b1 && 2 | b2 && 4);
} else if (!isPad(d3) &;&; isPad(d4)) {
b3 = base64Alphabet[d3];
if ((b3 &; 0x3) != 0)// last 2 bits should be zero
byte[] tmp = new byte[i * 3 + 2];
System.arraycopy(decodedData, 0, tmp, 0, i * 3);
tmp[encodedIndex++] = (byte) (b1 && 2 | b2 && 4);
tmp[encodedIndex] = (byte) (((b2 &; 0xf) && 4) | ((b3 && 2) &; 0xf));
} else { // No PAD e.g 3cQl
b3 = base64Alphabet[d3];
b4 = base64Alphabet[d4];
decodedData[encodedIndex++] = (byte) (b1 && 2 | b2 && 4);
decodedData[encodedIndex++] = (byte) (((b2 &; 0xf) && 4) | ((b3 && 2) &; 0xf));
decodedData[encodedIndex++] = (byte) (b3 && 6 | b4);
return decodedD
* remove WhiteSpace from MIME containing encoded Base64 data.
* @param data
* the byte array of base64 data (with WS)
* @return the new length
private static int removeWhiteSpace(char[] data) {
if (data == null) {
// count characters that's not whitespace
int newSize = 0;
int len = data.
for (int i = 0; i & i++) {
if (!isWhiteSpace(data[i])) {
data[newSize++] = data[i];
return newS
第四步、支付宝退款方法,因为我直接写在AlipayController中,测试退款前提是要先支付,拿到商户订单号和支付宝订单号才可以哦,亲测通过
* @Author: HONGLINCHEN
* @Description: 支付宝退款 退款的金额 不能大于交易金额
* store_id 可选 代表 商户的门店编号
* terminal_id 可选 代表 商户的终端编号
* operator_id 可选 代表 商户的操作员编号
* refund_reason 可选 代表 退款的原因说明
* out_request_no 可选 标识一次退款请求,同一笔交易多次退款需要保证唯一(就是out_request_no在2次退款一笔交易时,要不一样),如需部分退款,则此参数必传
* trade_no 必须 支付宝交易号
* out_trade_no 必须 商户订单号
* refund_amount 必须 退款金额
@ResponseBody
@RequestMapping(value = &aliPayRefund&, method = {RequestMethod.GET, RequestMethod.POST})
public String alipayRefundRequest() throws AlipayApiException, IllegalAccessException {
AlipayClient alipayClient = new DefaultAlipayClient(&https://openapi.alipay.com/gateway.do&,
AliPayConfig.APP_ID, AliPayConfig.APP_PRIVATE_KEY, &json&, &UTF-8&,
AliPayConfig.ALIPAY_PUBLIC_KEY, &RSA&);
AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
AlipayRefund alipayRefund= new AlipayRefund();
alipayRefund.setOut_trade_no(&&);//这个是商户的订单号
alipayRefund.setTrade_no(&3928&);//这个是支付宝的订单号
alipayRefund.setRefund_amount(&0.5&);//退款金额
alipayRefund.setRefund_reason(&正常退款&);//退款说明
alipayRefund.setOut_request_no(&HZ01RF001&);
alipayRefund.setOperator_id(&OP001&);
alipayRefund.setStore_id(&NJ_S_001&);
alipayRefund.setTerminal_id(&NJ_T_001&);//request.setBizContent(JSONUtil.simpleObjectToJsonStr(alipayRefund));
request.setBizContent(JSONObject.toJSONString(alipayRefund));//2个都可以,这个参数的顺序 不影响退款
AlipayTradeRefundResponse response = alipayClient.execute(request);
if (response.isSuccess()) {
System.out.println(&调用成功&);
System.out.println(&调用失败&);
return &退款成功&;
好了,今天的技术内容就分享给大家,码农不容易,小编给大家分享写博客也不容易,请多多支持,喜欢请关注头条号,每天都有功能和bug分享给大家一起学习进步,我们的目标是 ----软件攻城狮
有兴趣的朋友一起学习java 可以加群---《专注JavaWeb开发》 群号:
码农不容易,码文章更不容易啊,喜欢小编多多支持请点击关注哦,小编会更加努力每天给大家分享技术文章。
最后怕有些小朋友jar包缺失。小编特意把pom.xml全部内容贡献上来,以供大家学习参考!
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=&http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd&&
com.mobilepay.example
1.0-SNAPSHOT
MobilePay Maven Webapp
http://maven.apache.org
4.0.2.RELEASE
org.springframework
spring-core
${spring.version}
commons-logging
commons-logging
org.springframework
spring-web
${spring.version}
org.springframework
spring-oxm
${spring.version}
org.springframework
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-aop
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-test
${spring.version}
${log4j.version}
commons-logging
commons-logging
${slf4j.version}
slf4j-simple
${slf4j.version}
com.alibaba
org.apache.httpcomponents
com.github.wxpay
com.pentahohub.nexus
alipay-sdk-java
com.alipay
alipay-sdk-java
commons-httpclient
commons-httpclient
commons-codec
commons-codec
commons-logging
commons-logging
commons-codec
commons-codec
commons-logging
commons-logging
commons-cli
commons-cli
commons-beanutils
commons-beanutils
commons-logging
commons-logging
commons-collections
commons-collections
commons-codec
commons-codec
org.apache.httpcomponents
httpclient
commons-codec
commons-codec
commons-logging
commons-logging
org.apache.httpcomponents
commons-collections
commons-collections
commons-dbcp
commons-dbcp
commons-pool
commons-pool
commons-pool
commons-pool
org.apache.httpcomponents
org.apache.httpcomponents
httpclient
net.sf.ezmorph
net.sf.json-lib
org.apache.maven.plugins
maven-compiler-plugin
-Xlint:all
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
为您提供0门槛上云实践机会
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
java-支付宝支付-支付宝退款相关信息,包括
的信息,所有java-支付宝支付-支付宝退款相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
International

我要回帖

更多关于 支付宝商户版怎么开通 的文章

 

随机推荐