我正在按照教程here来集成google pay API以为我的应用获取资金。到目前为止,我已经成功地进行了收费,但是我发现很难成功转移费用。
我正在使用的Google钱包依赖项是
implementation 'com.google.android.gms:play-services-wallet:15.0.1'
我想从另一个MainActivity
发出请求时,以onActivityResult
的{{1}}中收取费用。但是Fragment
仅具有电子邮件地址和帐单状态。我能想到的唯一合乎逻辑的方法是以某种方式向Intent data
注入收费金额,但我似乎找不到解决方法。
我尝试在此处设置参数,但是在Intent data
中收到的Intent
中没有显示。
有人可以帮我吗?
onActivityResult
答案 0 :(得分:0)
正如您在评论中提到的那样,“电子邮件和付款状态”由Google电子钱包设置,因此不确定是否可以修改该“意图”。
解决方案:
一个选择是为此目的使用requestPayment()
。在chargeAmount
方法中,在SharedPreference
中设置MainActivity#onActivityResult()
,在chargeAmount
中,如果付款成功,则从SharedPreference
获取public void requestPayment(BigDecimal amount) {
...........
String chargeAmount = amount.divide(MICROS).setScale(2, RoundingMode.HALF_EVEN).toString();
// set chargeAmount to SharedPreference here
.............
}
。完成了。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case LOAD_PAYMENT_DATA_REQUEST_CODE:
switch (resultCode) {
case Activity.RESULT_OK:
// get chargeAmount from SharedPreference here
PaymentData paymentData = PaymentData.getFromIntent(data);
String token = paymentData.getPaymentMethodToken().getToken();
break;
case Activity.RESULT_CANCELED:
break;
case AutoResolveHelper.RESULT_ERROR:
Status status = AutoResolveHelper.getStatusFromIntent(data);
// Log the status for debugging.
// Generally, there is no need to show an error to
// the user as the Google Pay API will do that.
break;
default:
// Do nothing.
}
break;
default:
// Do nothing.
}
}
MainActivity#onActivityResult()
sudo apt-get install libftgl2
我希望这会对您有所帮助。
答案 1 :(得分:0)
请注意,获取支付令牌并不意味着支付交易成功完成。只有当您通过付款处理器或网关提交订单以进行处理时,这种情况才会发生。发生这种情况时,通常会包含订单ID和最终收费金额。
我建议将其作为一种更具体的方式来说明成功交易。