ApplePay蘋果支付內購項目配置及代碼實現及沙箱測試


  接上一篇博客:ApplePay蘋果支付准備工作:apple蘋果IOS內購申請教程協議、稅務和銀行業務配置 ,設置完成之后,我們需要配置蘋果App內購項目

一、App 內購買項目配置流程

  官方文檔:https://help.apple.com/app-store-connect/?lang=zh-cn#/devb57be10e7

1、登錄app store connect:https://appstoreconnect.apple.com/

2、從“我的 App”中,選擇您的 App。

3、在側邊欄的“App 內購買項目”下方,點按“管理”。

4、若要添加 App 內購買項目,請前往“App 內購買項目”,並點按添加按鈕(+)。

5、選擇“消耗型項目”、“非消耗型項目”或“非續期訂閱”,並點按“創建”。有關自動續期訂閱的信息,請參見創建自動續期訂閱

  注意類型選擇即可

6、添加參考名稱、產品 ID 和本地化顯示名稱。

7、點按“存儲”或“提交以供審核”。

  您可以在創建您的 App 內購買項目時輸入所有的元數據,或稍后輸入您的 App 內購買項目信息。

  注意:創建app內購買項目時有時候會報元數據缺失的問題,這時候點進去看下,缺什么數據:一般是價格和審核圖片忘記傳,填上即可

  創建完之后,一個價格就對應一個產品ID,這個產品ID就是后面你寫代碼需要用到的。

8、配置完app內購買項目之后,還有個:提交 App 內購買項目:https://help.apple.com/app-store-connect/?lang=zh-cn#/dev1986a0e5c

  1. 從“我的 App”中,選擇您的 App。

  2. 在側邊欄的“App 內購買項目”下方,點按“管理”。

  3. 在右側,向下滾動至“App 內購買項目”部分,點按“App 內購買項目”旁的添加按鈕(+)。

    點擊“+”,為此 App 版本選擇 App 內購買項目。
  4. 在“App 內購買項目”對話框中,選擇您想要提交的 App 內購買項目。

    向版本添加 App 內購買項目。
  5. 點按“完成”,然后“存儲”。

  當您准備就緒后,提交您的 App 以供審核

二、代碼實現蘋果支付

  代碼實現主要參考官方文檔提供:IOS 應用內支付(IAP)接口使用說明:https://ask.dcloud.net.cn/article/497

  我這邊簡化代碼實現:

<script> import { validApplyPayApi } from '@/apis/api.js' import { mapActions, mapGetters } from 'vuex' import { cbSuccess } from '@/utils'
    const IAPOrders = [ '**6','**18','**68', '**108','**218', '**318','**418','**648','**998' ] // 根據這些ids獲取到蘋果app內商品信息,這些ids就是你上面設置的產品id
 export default { data () { return { mbs: [6,18,68,108,218,318,418,648,998], mb: 68, iapChannel: null } }, computed: { ...mapGetters(['userInfo']) }, onLoad () { this.plusReady() }, onShow () { this.getUser() }, methods: { ...mapActions(['getUser']), plusReady() { let _this = this plus.payment.getChannels(function(channels) { for (let i in channels) { if (channels[i].id == 'appleiap') { _this.iapChannel = channels[i] _this.iapChannel.requestOrder(IAPOrders, function(event) { for (let index in event) { let OrderItem = event[index] console.log("Title:" + OrderItem.title + "Price:" + OrderItem.price + "Description:" + OrderItem.description + "ProductID:" + OrderItem.productid) } }, function(e) { console.log("獲取支付通道失敗:" + e.message) }) } } }, function(e) { console.log("獲取支付通道失敗:" + e.message) }) }, pay() { let _this = this let _productId = '**' + this.mb // 當前選擇的產品id,根據這個id去對應app內購買項目詳情
 uni.showLoading({ title: '支付中,請稍后' }) plus.payment.request(_this.iapChannel, { "productid": _productId }, function(result) { console.log(result) _this.validPay(result) }, function(e) { console.log('支付失敗:' + e.code) }) }, async validPay(result) {// 蘋果支付成功之后會返回數據,根據返回數據請求后台接口校驗,然后做添加錢等相應業務邏輯
                let _data = { transactionId: result.payment && result.payment.productid, receiptData: result.transactionReceipt } console.log('valid', _data) let { data } = await validApplyPayApi(_data) cbSuccess(data, _ => { this.getUser() }) uni.hideLoading() } } } </script>

  我們可以看一下一些相應的打印信息

19:01:59.857  Title:墨幣68元Price:68Description:墨幣68元ProductID:**68 at pages/course/card.vue:77 
19:02:04.708  Title:墨幣418元Price:418Description:墨幣418元ProductID:**418 at pages/course/card.vue:77 
19:02:04.728  Title:墨幣998元Price:998Description:墨幣998元ProductID:**998 at pages/course/card.vue:77 
19:02:04.748  Title:墨幣318元Price:318Description:墨幣318元ProductID:**318 at pages/course/card.vue:77 
19:02:04.769  Title:墨幣18元Price:18Description:墨幣18元ProductID:**18 at pages/course/card.vue:77 
19:02:04.789  Title:墨幣6元Price:6Description:墨幣6元ProductID:**6 at pages/course/card.vue:77 
19:02:04.810  Title:墨幣108元Price:108Description:墨幣108元ProductID:**108 at pages/course/card.vue:77 
19:02:04.830  Title:墨幣218元Price:218Description:墨幣218元ProductID:**218 at pages/course/card.vue:77 
19:02:04.851  Title:墨幣648元Price:648Description:墨幣648元ProductID:**648 at pages/course/card.vue:77 

  applePay付款成功之后返回的數據如下這樣:

{ "payment": { "productid": "**18", "quantity": "1" }, "transactionDate": "2021-01-26 19:02:37", "transactionIdentifier": "1000000769854176", "transactionReceipt": "ewoJInNpZ25hdHVyZSIgP**Zamp1TGd6mFNaEVha2**wWVkvSlJBballnTURNN7Cn0=", "transactionState": "1" }

  我們主要需要拿到productidtransactionReceipt(base64形式的字符串)來進行校驗來繼續后續業務工作。

三、沙箱測試ApplePay

  新app需要將app內購買項目提交審核之后才能測試,並且需要扣錢,好在apple提供了沙箱測試,並不需要審核通過及扣錢就可以測試是否走通。

  官方文檔:測試 App 內購買項目:https://help.apple.com/app-store-connect/?lang=zh-cn#/dev7e89e149d

您可以使用沙盒測試您的 App 和 App 內購買項目,而無需創建財務交易。沙盒是一個使用 App Store 基礎架構但不處理實際付款的測試環境。它會返回交易,付款被視為已成功處理。如創建沙盒測試員帳戶中所述,您可以在 App Store Connect 中添加沙盒測試員。

1、進入app store connect,點擊“用戶和訪問”

2、點擊沙盒下的測試員

3、請點按添加按鈕(+)

4、輸入測試員信息,然后點按“邀請”。

5、測試員的郵箱就會收到一個邀請鏈接,驗證一下appid(即郵箱)和密碼即可

  然后就可以使用該測試員appid進行ApplePay的支付測試了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM