app接入支付宝api,支付宝付款踩坑记录

服务器端用的netcore,需要安装一个nuget包:

然后就是重点:

第一步: 需要声明一个客户端对象来生成订单信息

        static DefaultAopClient _alipayClient;
        public static DefaultAopClient AlipayClient
        {
            get
            {
                if (_alipayClient != null) return _alipayClient;
                var inst = AlipayAppConfig.Instance;
                var serverUrl = inst.GatewayUrl;
                var appId = inst.AppId;
                var privateKeyPem = inst.PrivateKey;
                var format = "json";
                var version = "1.0";
                var signType = inst.SignType;
                var alipayPulicKey = inst.AlipayPublicKey;
                var charset = inst.CharSet;
                _alipayClient = new DefaultAopClient(serverUrl, appId, privateKeyPem, format, version, signType, alipayPulicKey, charset);
                return _alipayClient;
            }
        }

上面这个函数千万要注意参数顺序

app接入支付宝api,支付宝付款踩坑记录_第1张图片

因为重载非常多,且都是string,参数顺序错误直接导致订单乱了你还找不到问题在哪

我是与阿里在线客服联调人家给我找到参数错误的原因的,在线客服地址:https://cschannel.alipay.com/newPortal.htm?scene=antsupport_layer

所以这里很感谢阿里的技术服务团队

第二步: 生成用户订单

        /// 
        /// 获得支付宝订单数据,单位:元
        /// 
        /// 
        /// 
        /// 
        public static AlipayTradeAppPayModel GetAlipayOrderData(double money, PaymentType type)
        {
            var inst = AlipayAppConfig.Instance;
            var appId = inst.AppId;

            var out_trade_no = PayUtil.GenerateOutTradeNo(appId);
            var body = EnumHelper.GetName(type);

            // 组装业务参数model
            var model = new AlipayTradeAppPayModel
            {
                OutTradeNo = out_trade_no,
                TotalAmount = $"{money:F2}",
                ProductCode = "QUICK_MSECURITY_PAY",
                Subject = body,
                Body = body,
            };
            return model;
        }

注意productCode是"QUICK_MSECURITY_PAY",productCode和prod_code是两个东西,不要弄混

第三步: 生成支付宝订单

app接入支付宝api,支付宝付款踩坑记录_第2张图片

这里就用到了第一步的操作对象,注意请求类是AlipayTradeAppPayRequest

 

 

你可能感兴趣的:(Alipay)