杰哥哥
杰哥哥
  • 发布:2023-03-13 19:13
  • 更新:2025-04-20 18:43
  • 阅读:2165

有偿!有偿!有偿! 苹果内购支付,支付的时候 提示"errMsg":"requestPayment:fail Payment_appleiap:訂單的ID不存在

分类:nvue

应用: uniapp 打包ios
支付: 苹果内购
开发环境: 后端部署 香港. 苹果内购产品是台湾地区

在沙盒模式测试发现如果产品选择人民币 是可以拉起支付的,如果更换成台币无法拉起支付

2023-03-13 19:13 负责人:无 分享
已邀请:
Xavier_Gao

Xavier_Gao

问题解决了吗?我在澳门也不可以

3***@qq.com

3***@qq.com

问题解决了吗

h***@gmail.com

h***@gmail.com

需要先调用查询产品列表,再调用请求支付。参考startPay方法


class SubscribeService {  

  getProductList(productIds = []) {  
    return new Promise((resolve, reject) => {  
      uni.getProvider({  
        service: 'payment',  
        success: (res) => {  
          const provider = res.providers.find(p => p.id === 'appleiap');  
          if (provider) {  
            provider.requestProduct(productIds, (products) => {  
              resolve(products);  
            }, (err) => {  
              reject(err);  
            });  
          } else {  
            reject(new Error('Apple IAP provider not found'));  
          }  
        },  
        fail: (err) => {  
          reject(err);  
        }  
      });  
    });  
  }  

  requestPayment(orderInfo) {  
    return new Promise((resolve, reject) => {  
      uni.requestPayment({  
        provider: 'appleiap',  
        orderInfo: orderInfo,  
        success: (res) => {  
          resolve(res);  
        },  
        fail: (err) => {  
          reject(err);  
        }  
      });  
    });  
  }  

  restoreSubscriptions() {  
    return new Promise((resolve, reject) => {  
      uni.getProvider({  
        service: 'payment',  
        success: (res) => {  
          const provider = res.providers.find(p => p.id === 'appleiap');  
          if (provider) {  
            provider.restoreCompletedTransactions({  
              manualFinishTransaction: true  
            }, (res) => {  
              resolve(res);  
            }, (err) => {  
              reject(err);  
            });  
          } else {  
            reject(new Error('Apple IAP provider not found'));  
          }  
        },  
        fail: (err) => {  
          reject(err);  
        }  
      });  
    });  
  }  

  startPay(productId, productIds = []){  
      return new Promise((resolve, reject) => {  
          this.getProductList(productIds).then((products) => {  
              const product = products.find(p => p.productid === productId);  
              if (product) {  
                  this.requestPayment({productid: productId}).then((res) => {  
                      resolve(res);  
                  }).catch((err) => {  
                      reject(err);  
                  });  
              } else {  
                  reject(new Error('Product not found'));  
              }  
          }).catch((err) => {  
              reject(err);  
          });  
      });  
  }  

}  

// 导出单例实例  
const subscribeService = new SubscribeService();  
export default subscribeService;  
态度是心的面具

态度是心的面具 - 欢迎询问ios相关问题

你好,是有企业证书吗

要回复问题请先登录注册