订单签名错误,请检查partner对应的密钥是否正确

本文介绍了一种在iOS应用中使用AlixPayOrder类进行支付时遇到的订单签名错误问题及其解决方案。通过检查productDescription字段并为该字段提供默认值来避免因为空值而导致的签名错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

	AlixPayOrder *aliOrder = [[AlixPayOrder alloc] init];
	aliOrder.partner = ALIPAY_PARTNER_ID;
	aliOrder.seller = ALIPAY_SELLER_ID;
	aliOrder.tradeNO = tradeNO; //订单ID(由商家自行制定)
	aliOrder.productName = productName; //商品标题
	aliOrder.productDescription = [productDes isNotEmpty]?productDes:@"暂无描述"; //商品描述
	aliOrder.amount = price; //商品价格
	aliOrder.notifyURL = ALIPAY_NOTIFY_URL; //回调URL


确定生成的私钥、公钥都正确,下载的DEMO上调试成功,但集成到APP里面后一直报“订单签名错误,请检查partner对应的密钥是否正确”,后面调试的时候发现,在生成订单信息时有一个productDescription 字段,是订单的备注信息,如果为空的话就会报“订单签名错误,请检查partner对应的密钥是否正确”,好奇怪,所以这个字段做了一个检查,如果备注为空就给了一个默认值“暂无备注”,问题解决。



在鸿蒙开发中,后端给我返回了支付的接口_input_charset=\"UTF-8\"&body=\"购买2026护士-精品班-A班\"&notify_url=\"http://api.ahuxueshu.com/payment/AliNotify\"&out_trade_no=\"AH2025032512280910129APP\"&partner=\"2088041180060833\"&payment_type=\"1\"&seller_id=\"pumcwch@dingtalk.com\"&service=\"mobile.securitypay.pay\"&subject=\"2026护士-精品班-A班\"&total_fee=\"99.00\"&sign=\"TTvIaF4xAAjqfncj33coOPCeAI9VKm%2BZghQj6lFPd6fGPwup3uoeyQsyFODXhYzr3SeX4XfwcmycEAWUE2L8gGClrGkdOvO99Zo4bXU0uL7yTu%2BBMgMNFVTqh5DCJik8uNlbroZxtHo5ClrWHPiVhcKvNmoBz75Zd9TiQYOfAzY%3D\"&sign_type=\"RSA\"" 。 以下是我的代码:import NavBar from '../../../view/global/NavBar' import { router } from '@kit.ArkUI' import { GetPrepay, GetPrepayReq, payStatus, payStatusReq } from '../../../api/prePay' import { AxiosResponse } from '@ohos/axios' import { GoodsInfo } from '../../../apiMode/prePay' import { HomeSectionHeadView } from '../../comment/HomeSectionHeadView' import { common } from '@kit.AbilityKit' import { bundleManager } from '@kit.MDMKit' import { Order } from '../../../apiMode/responseModel/order/OrderCreate' import { JSON } from '@kit.ArkTS' @Entry @Component struct OrderPay { @State aliPayUrl : string = '' // 支付宝支付链接 @State payInfo : GoodsInfo = new GoodsInfo() // 商品支付信息 @State selectedPay : string = 'wechat' // 当前选中的支付方式 @State paystatus : string = '' // 支付状态 @State price : number = 0 // 支付金额 @State orderId : number = 0; // 订单ID @State payment : string = ''; // 支付宝: alipay 微信:wxpay 学习币:balancepay ,0元支付:zeropay @State expireTime:number = 0; // 订单过期时间 // 获取支付信息方法 getPrepay() { let reqData: GetPrepayReq = { orderId:this.orderId, // 订单ID号 payment:this.payment // 支付方式 } GetPrepay(reqData).then((res: AxiosResponse) => { this.payInfo = res.data.goodsInfo // 商品信息 this.aliPayUrl = res.data.alipay.urlStr // 支付宝支付链接 console.info('商品信息' , JSON.stringify(res.data.goodsInfo)) console.info('支付宝支付网站' , JSON.stringify(this.aliPayUrl))为什么拉起支付宝展示空白页
最新发布
03-26
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值