通过 API 更新 Google Pay App Loyalty Card
Posted
技术标签:
【中文标题】通过 API 更新 Google Pay App Loyalty Card【英文标题】:Updating Google Pay App Loyalty Card through API 【发布时间】:2018-10-23 19:34:35 【问题描述】:我们已使用 android API 将忠诚卡添加到 Google Pay 应用。
链接 - https://developers.google.com/pay/save/guides/loyalty/get-started-android
它工作正常。在我们的应用中点击保存到电子钱包,我们可以在 Google Pay 应用中看到已保存的会员卡。
现在我们需要通过 Android API更新添加的忠诚度卡。我们检查了 API 文档,没有找到任何参考。
是否可以更新忠诚卡,如果可以,如何更新?
【问题讨论】:
此处提供了通过 API 更新忠诚度积分的说明developers.google.com/pay/passes/guides/loyalty/concepts 链接不再有效。可以添加更多细节吗?如何使用 android api 更新忠诚度积分?快速回答将不胜感激。 从那以后有什么进展吗? 我找到了这个链接,但实际上我没有更新会员卡...developers.google.com/pay/passes/guides/get-started/… 【参考方案1】:您无法使用 Android API 编辑通行证,建议更新您的解决方案以使用 REST API。请参阅此处的注释https://developers.google.com/pay/passes/guides/get-started/basic-setup/get-access-to-android-sdk 以供参考。
【讨论】:
【参考方案2】:对于 php
我在 RestMethods.php 中创建了 2 个额外的方法,它们使用 Walletobjects.php 中定义的方法
public function updateLoyaltyClass($classId, $objectPayload)
$response = NULL;
$service = new Google_Service_Walletobjects($this->client);
try
$response = $service->loyaltyclass->update($classId, $objectPayload);
$response["code"] = 200;
catch (Google_Service_Exception $gException)
$response = $gException->getErrors();
$response["code"] = $gException->getCode();
echo("\n>>>> [START] Google Server Error response:");
var_dump($response);
echo("\n>>>> [END] Google Server Error response\n");
catch (Exception $e)
var_dump($e->getMessage());
return $response;
public function updateLoyaltyObject($objectId, $objectPayload)
$response = NULL;
$service = new Google_Service_Walletobjects($this->client);
try
$response = $service->loyaltyobject->update($objectId, $objectPayload);
$response["code"] = 200;
catch (Google_Service_Exception $gException)
$response = $gException->getErrors();
$response["code"] = $gException->getCode();
echo("\n>>>> [START] Google Server Error response:");
var_dump($response);
echo("\n>>>> [END] Google Server Error response\n");
catch (Exception $e)
var_dump($e->getMessage());
return $response;
然后创建了我自己的 update.php,它重用了 ResourceDefinitions.php 类和对象,您可以在文档中进行内联编辑
<?php
require_once "Config.php"; // define constants
require_once 'RestMethods.php';
require_once "Services.php";
require_once 'Walletobjects.php';
require_once 'ResourceDefinitions.php';
$restMethods = RestMethods::getInstance();
$issuerUID = "Your Issuer ID";
$classUid = "Your Class ID";
$classId = sprintf("%s.%s" , $issuerUID, $classUid);
$objectUid= "Your Object ID";
$objectId = sprintf("%s.%s", $issuerUID, $objectUid);
//fetch object and class from resource
$objectResourcePayload = ResourceDefinitions::makeLoyaltyObjectResource($classId, $objectId);
$classResourcePayload = ResourceDefinitions::makeLoyaltyClassResource($classId);
//print_r($objectResourcePayload);
//print_r($classResourcePayload);
$classUpdateResponse = $restMethods->updateLoyaltyClass($classId,$classResourcePayload);
$objectUpdateResponse = $restMethods->updateLoyaltyObject($objectId,$objectResourcePayload);
print_r($classUpdateResponse);
print_r($objectUpdateResponse);
?>
【讨论】:
以上是关于通过 API 更新 Google Pay App Loyalty Card的主要内容,如果未能解决你的问题,请参考以下文章
Google Pay API - 在没有 JWT 的情况下向 Google Pay 应用程序插入通行证
Laravel 中的 Google Pay 或 Phone Pay 或 Paytm UPI API 支付